2016-12-30 123 views
0

我製作了一個自定義python模塊(說awesome-lib.py),這個模塊將被多個其他python模塊(module1.pymodule2.py等)導入和使用。問題是所有模塊都需要放在不同的文件夾中,每個模塊都應該有一個awesome-lib.py的副本供他們導入。我想到了這樣做的兩種選擇:分別在多個模塊中包含一個自定義python模塊

  1. 每個模塊文件夾都會有一個awesome-lib.py的副本。這樣我可以import awesome-lib並在每個模塊中使用它。但問題是我必須在awesome-lib.py中進行任何更改。我將不得不單獨複製每個模塊文件夾中的文件,因此這可能不是一個好方法。
  2. 我可以使用distutils打包awesome-lib.py。無論何時在模塊中進行更改,我都會使用一些腳本更新每個模塊中的awesome-lib.py。但仍然我希望awesome-lib發行包分別包含在每個模塊文件夾中。

任何人都可以請告訴我一個有效的方法來實現這一目標嗎?這樣我就可以輕鬆地更改一個文件,並且這些更改將分別反映在所有模塊中。

P.S:我想分別在每個模塊文件夾中分別輸入awesome-lib.py,因爲我需要壓縮它的內容並將每個模塊作爲Lambda zip包上載到AWS Lambda。

+1

如果感覺你做錯了,你可能會做錯了。 –

+0

是的,所以任何解決它? :) – Sibtain

+2

我對AWS沒有太多瞭解,但是我會質疑一個系統的設計,它會將您的模塊的副本分別放在每個文件夾中。這就是你做錯了事。應該有一些方法可以集中安裝'awesome-lib.py',並讓每個模塊使用它,或者在'awesome-lib.py'中表示'module1.py'等的依賴關係,並且有一個依賴關係解析系統照顧它。 –

回答

0

只讓awesome-lib.py的一個副本放置在放置位置並將其路徑附加到其他模塊中。讓樣品路徑是「/home/user/awesome-lib.py」

添加下面的所有其他模塊的代碼要導入awesome-lib.py

​​

注:路徑真棒lib可能會有所不同你的選擇

+0

這在技術上是有效的,但除了一次性腳本之外,這是一個糟糕的主意,因爲一旦你移動了任何涉及到另一臺計算機的文件,或更改目錄結構,一切都會中斷。 –

+0

爲什麼要改變目錄結構?只需讓你的模塊在你想要的地方,然後簡單地追加它的路徑..上面的例子只顯示瞭如何做到這一點。 –

+0

問題出在當模塊打包爲zip,它需要在zip包中有一個單獨的庫。如果沒有,並且我在AWS Lambda上進行了上傳,那麼AWS Lambda上將無法識別該路徑 – Sibtain

相關問題