2013-10-21 200 views
1

開發應用程序並在應用程序本地git克隆目錄中工作時,我已經建立了一個鏈接到模塊的開發版本(在其git克隆目錄中)。我這樣做是爲了讓應用程序的任何運行(從開發目錄中)調用該模塊的開發版本(通常同時開發該版本)。我只是爲mymodule.py添加一個.gitignore,這個工作。Python開發模塊路徑

但我不喜歡這樣。所以我一直在想辦法從開發路徑中取出mymodule.py,而不是安裝發行版本的python模塊路徑。任何人做這樣的事情或有建議。

dev/myapp/myapp -> import mymodule 
    -from here- 
dev/mymodule/mymodule.py 
    -not here- 
/usr/lib/python2.7/site-packages/mymodule.py 

回答

2

要跟進@forivall說什麼,我相信virtualenv會解決你的問題。

您可以創建一個開發環境,並在其中安裝所有依賴關係。這應該使它,所以你不必手動操作你的Python路徑。

  1. virtualenv /path/to/env/ - 後,將創建一個新的ENV
  2. 你需要 '激活' 您的ENV source /path/to/env/bin/activate

現在你正在使用一個單獨的乾淨的Python環境。你可以檢查你的依賴關係,或者直接從git使用pip安裝它們!如果使用settuptools,您可以創建一個開發雞蛋seems to address your exact problem

+0

所以這設置了一個virtualenv說myvs在一個目錄./myvs這是很酷的起點。但是有沒有辦法給這個virtualenv的PATH添加一個dir? –

+0

當你使用'sys.path.append'時,它應該被添加到你激活的virtualenv的路徑中,而不是你的系統python安裝。 – dm03514

+0

就像我對@forivall所說的,我喜歡virtualenv,現在我在這個應用程序開發中使用它。然而你的sys.path.append讓我思考,並且最終我在導入mymode調用之前使用了'if os.path.basename(os.getcwd())== PrgName:sys.path.insert(0,DevPathToMyModule) –

1

您可以設置PYTHONPATH環境變量來指定不同的位置在檢查順序,只要第一把你的開發版本。

+0

那麼你只是在開發時調整PYTHONPATH?我不希望這是全局PYTHONPATH,因爲如果應用程序在開發目錄之外運行,我希望模塊的安裝版本運行。 –

+0

你可以在同一時間執行'PYTHONPATH = BLAH python somefile.py'。我通常最終將我的makefile文件設置爲對我來說,然後我做一些像「make dev」或其他東西來啓動開發環境。 'virtualenv'聽起來也是一個很好的答案。 – Murph

2

只需使用virtualenv。去谷歌上查詢。

如果工作太多,您還可以使用virtualenvwrapper,它更簡單地管理您的virtualenv s。

+0

我剛剛通過https://pypi.python.org/pypi/virtualenv閱讀,我不確定這是如何工作的?你有一個例子嗎? –

+1

我發現這是一個很好的散步通過http://iamzed.com/2009/05/07/a-primer-on-virtualenv/ –