2013-02-24 166 views
4

我試圖從我的github中以「可編輯」(-e)模式安裝軟件包,以便能夠輕鬆地在存儲庫上工作,同時使用它。從github使用-e選項將pip安裝到virtualenv中使用-e選項無法將包添加到python路徑

然而,它造成的問題,因爲它安裝後它不可用在python路徑。

隨着創建並激活一個清新,潔淨的virtualenv「發行人」,我運行以下命令:

pip install -e git+https://github.com/roberts81/easy-thumbnails.git#egg=easy_thumbnails 
Obtaining easy-thumbnails from git+https://github.com/roberts81/easy-thumbnails.git#egg=easy_thumbnails 
    Cloning https://github.com/roberts81/easy-thumbnails.git to /Users/ben/Envs/publisher/src/easy-thumbnails 
    Running setup.py egg_info for package easy-thumbnails 

    no previously-included directories found matching 'docs/_build' 
Installing collected packages: easy-thumbnails 
    Running setup.py develop for easy-thumbnails 

    no previously-included directories found matching 'docs/_build' 
    Creating /Users/ben/Envs/publisher/lib/python2.7/site-packages/easy-thumbnails.egg-link (link to .) 
    Adding easy-thumbnails 1.2 to easy-install.pth file 

    Installed /Users/ben/Envs/publisher/src/easy-thumbnails 
Successfully installed easy-thumbnails 
Cleaning up... 

然後,如果我運行python(仍然在我的virtualenv),並嘗試從包中導入任何東西,它失敗。

Python 2.7.2 (default, Jun 20 2012, 16:23:33) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import easy_thumbnails 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named easy_thumbnails 
>>> 

如果我安裝它沒有-e選項,一切工作丹迪。我可以用其他回購的方式獲得相同的效果(即,它們不在安裝後的python路徑中),例如, pip install -e git+http://github.com/django/[email protected]/1.5.x#egg=django。那麼是什麼給了?

我注意到的一件事是,它似乎並沒有真正更新easy-install.pth文件,即使它說它是...這裏有些奇怪的事情。

但是,如果我運行它(PIP安裝...命令)與sudo,它的工作原理!另外,我可以在全球範圍內安裝軟件包(virtualenv之外,當然還有sudo)並且工作正常。

版本:

PIP == 1.2.1 的virtualenv == 1.8.4 virtualenvwrapper == 3.6 蟒蛇== 2.7.2 的Mac OSX 10.8.2

+0

看着它,它說「添加easy-thumbnails 1.2到easy-install.pth文件」......但我沒有在.pth文件中看到任何引用易於縮略圖的東西。究竟是怎麼回事? (我發誓這工作得很好) – 2013-02-24 03:46:30

+0

試圖卸載並重新安裝pip,virtualenv,virtualenvwrapper,沒有運氣。 – 2013-02-24 03:57:30

回答

1

我有一個類似的問題,並通過刪除我的virtualenv,重新創建它,激活它,然後(在做其他事情之前)更新環境中的pip和setuptools來解決它。首先打開一個新的終端窗口(以確保虛擬env未被激活)並導航到您的virtualenv所在的目錄。然後做:

rm -rf env 
virtualenv env 
. env/bin/activate 
pip install -U pip setuptools 

這我能夠安裝(使用pip)從GitHub的包後,並能夠將其導入蟒。

2

與PIP爲我工作1.2.1和1.8.4的virtualenv:

$ virtualenv -p python2.7 venv 
Running virtualenv with interpreter /usr/local/bin/python2.7 
New python executable in venv/bin/python 
Installing setuptools............done. 
Installing pip...............done. 

$ source venv/bin/activate 

$ pip install -e git+https://github.com/roberts81/easy-thumbnails.git#egg=easy_thumbnails 
Obtaining easy-thumbnails from git+https://github.com/roberts81/easy-thumbnails.git#egg=easy_thumbnails 
    Cloning https://github.com/roberts81/easy-thumbnails.git to ./venv/src/easy-thumbnails 
    Running setup.py egg_info for package easy-thumbnails 

    no previously-included directories found matching 'docs/_build' 
Installing collected packages: easy-thumbnails 
    Running setup.py develop for easy-thumbnails 

    no previously-included directories found matching 'docs/_build' 
    Creating /Users/jterrace/test/venv/lib/python2.7/site-packages/easy-thumbnails.egg-link (link to .) 
    Adding easy-thumbnails 1.2 to easy-install.pth file 

    Installed /Users/jterrace/test/venv/src/easy-thumbnails 
Successfully installed easy-thumbnails 
Cleaning up... 

$ python 
Python 2.7.3 (default, Nov 12 2012, 09:50:25) 
[GCC 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66))] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import easy_thumbnails 
>>> easy_thumbnails.VERSION 
'1.2' 
+0

它也與pip v1.3.1一起工作。非常感謝! – slackmart 2014-02-07 19:53:16

0

雖然它解決了一個不同的問題,下面this Mac OSX 10.8-specific thread其結論似乎是解決這個問題對我來說。

具體來說,我裝不分配使用PIP:

$ curl -O http://python-distribute.org/distribute_setup.py 
$ python distribute_setup.py 

然後我說export VIRTUALENV_DISTRIBUTE=1了我的〜/ .bashrc文件,並重新啓動我的終端。

我卸載並重新安裝了virtualenv和virtualenvwrapper以確保安全。

然後我銷燬了舊的虛擬環境並重新創建了它們。無論出於何種原因,修復virtualenv使用和安裝分佈修復了這個問題。古怪。

+1

這個行爲是否有錯誤報告? – Erik 2013-05-29 23:30:26

+0

Distribute is [now deprecated](https://pypi.python.org/pypi/distribute/0.6.49) - 最好使用setuptools代替。 Dan Tenenbaum的答案似乎更有可能現在起作用,這是我以前在使用舊版pip和setuptools的系統上所做的工作:http://stackoverflow.com/a/38404769/992887 – RichVel 2017-01-06 14:28:22

2

因爲問題已經得到解答,這可能看起來很愚蠢,而且這解決了另一個問題 - 但是當我得到這個錯誤時,這是​​我的解決方案。 (我希望這可以幫助其他人)

確保你有一個__init__.py文件。結構應該像這樣:

/myprojectname 
    /myprojectname 
    __init__.py 
    mymodule.py 
    setup.py 

然後從頂級myprojectname文件夾中運行「pip install -e .」,一切正常。在我的情況下,我忘記了__init__.py,並忘記了這是該消息的可能原因。

相關問題