2012-05-10 30 views
0

我做了一個Python模塊(https://github.com/Yannbane/Tick.py)和一個Python程序(https://github.com/Yannbane/Flatland.py)。程序導入模塊,如果沒有它,它將無法工作。我打算讓人們在運行該程序之前下載這兩個文件,但是我對此有點擔心。如何在與Git上的其他人共享腳本時處理第三方Python導入?

在節目中,我已經添加了這些行:

sys.path.append("/home/bane/Tick.py") 
import tick 

"/home/bane/Tick.py"是路徑到我的地方需要被包含在模塊的回購,但是這顯然是其他人不同!我怎樣才能更好地解決這種情況?

+0

當這兩個文件都由您編寫時,這是第三方導入? – geoffspear

+0

這是他們的第三方,不是嗎? – corazza

回答

2

您可能想要嘗試將模塊提交到Python Package Index,這樣人們可以輕鬆地將它安裝到路徑中(pip tick),並且您可以直接導入它,而無需將其添加到Python路徑中。

否則,我會建議簡單地告訴人們下載模塊,並將其放在程序的子目錄中。如果您真的覺得這樣做太費力了,您可以將該模塊的副本放入該程序的存儲庫中(當然,這意味着確保您保持兩個版本都是最新的,這雖然有點痛苦,儘管我想可能只是使用符號鏈接)。

還值得注意的是,您的回購股票名稱有點誤導,大寫通常很重要,所以您可能想要調用回購tick.py以匹配模塊和Python命名約定。

3

@Lattyware建議的是一個可行的選擇。然而,核心依賴與主程序(Django和PyDev做這個例子)是不一樣的。這工作正常,特別是如果主代碼針對特定版本的庫進行了調整。

爲了避免Lattyware在代碼維護時遇到的麻煩,您應該查看一下git submodules,它允許這種類型的佈局保持代碼版本化。

從目錄的結構看來,這兩個文件都存在於同一個目錄中。這可能是比它們可能是同一個package的兩個模塊的說明。在這種情況下,你應該簡單地添加一個名爲__init__.py到目錄的空文件,然後你導入可以通過工作:

import bane.tick 

from bane import tick 

哦,是的......你應該使用低case的模塊名稱(值得深入研究一下PEP8,如果你打算用python編寫的話:) :)

HTH!

+0

+1,一些很棒的建議。 –

相關問題