2012-11-15 50 views
5

我有一個ns.pkg2包,它取決於ns.pkg1包。我做了一個分支,將它發佈到git,並想將我的版本安裝到我的virtualenv中。我使用pip install -e mygit,最後ns.pkg<env>/local/lib/python2.7/site-packages/ns/pkg1ns.pkg2<env>/src/ns.pkg2<env>/lib/python2.7/site-packages/ns.pkg2.egg-link。現在我可以導入nsns.pkg1而不是ns.pkg2。我無法找到一種方法來安裝git沒有pip install -e git包,調用setup.py develop。另外,我不確定這不是模塊代碼的問題。命名空間包和pip安裝-e

那麼,是否有可能從同一命名空間從tarball中直接從git中安裝兩個模塊?

+0

什麼的'__init __ py'你的'pkg2'看起來像?應該類似於[這裏]描述的內容(http://stackoverflow.com/questions/1675734/how-do-i-create-a-namespace-package-in-python) – mata

+1

@mata'pkg_resources.declare_namespace(__ name__) ' – wRAR

回答

5

有一個在pip一個開放的問題,涉及到--editable和命名空間安裝:https://github.com/pypa/pip/issues/3

一個workaround was merged,也許你可以通過做解決您的問題。

$ pip install -e mygit --egg 
+0

你幫我解決真正的長期問題(我希望它解決了)。使用'pip'我從pypi安裝了我的命名空間包。並使用buildout工作在開發包上,共享相同的名稱空間。有時我遇到了導入基於開發工具包的問題,​​但據報道它已丟失。現在的解決方案?我**使用easy_install從pypi安裝名稱空間包,而不是pip **。在這個變化之後,我能夠導入我的基於開發的程序。感謝您的鏈接。 –