2014-01-06 215 views
5

嘗試最終跳轉到Python 3,但遇到了virtualenvwrapper的一些問題。我開始了通過像這樣創建虛擬環境:Python3 pip在virtualenv中全局安裝

mkvirtualenv -p /usr/local/bin/python3 projectname

這將產生:

Running virtualenv with interpreter /usr/local/bin/python3 
Using base prefix '/usr/local/Cellar/python3/3.3.3/Frameworks/Python.framework/Versions/3.3' 
New python executable in projectname/bin/python3.3 
Also creating executable in projectname/bin/python 
Installing setuptools, pip...done. 

到目前爲止,一切都很好。我檢查python控制檯以確保環境正在查看正確的解釋器以及所有這一切。這裏就是悲傷發生的(而virtualenv中被激活):

pip install flask聲稱自己是成功的,但很可惜:

Python 3.3.3 (default, Jan 2 2014, 13:26:32) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.2.79)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import flask 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named 'flask' 

這裏的問題:

$ pip show flask 
--- 
Name: Flask 
Version: 0.10.1 
Location: /usr/local/lib/python3.3/site-packages 
Requires: Werkzeug, Jinja2, itsdangerous 

除非我完全誤解的virtualenv /包裝和他們各自的魔術(我很可能),似乎像pip安裝是全局安裝Flask,而不是我的virtualenv中的站點包,因此virtualenv忽略它。

任何線索這裏發生了什麼/如何解決?假設virtualenvwrapper已準備好用於python3的黃金時段,我錯了嗎?漂亮的解決方案,我不需要修改我的.bashrc或手動設置環境變量是可取的。我希望有一種方法可以通過virtualenv和virtualenvwrapper提供的api來實現。

謝謝!

+0

哪些版本的'pip'和'virtualenv'? (或者你使用'venv'而不是'virtualenv'?)我記得pip 1.4和最近的virtualenv版本有問題(即使這些版本是1.4),這是通過升級到pip 1.5解決的,但我不記得了如果這是問題... – abarnert

+0

一旦我激活virtualenv,使用的點是:/usr/local/lib/python3.3/site-packages(python 3.3)中的點1.5。我使用virtualenvwrapper來抽象虛擬virtualenv的東西,但是當我輸入'virtualenv --version'我得到1.11 – follyroof

+0

好吧,所以它使用你的系統'pip'而不是你的virtualenv的'pip',我期望造成這個問題。 「哪個pip」顯示/ usr/local/bin/pip,還是它是正確的路徑(你的env中的那個)? – abarnert

回答

0

我在全局pip安裝軟件包時遇到問題,而不是在激活的virtualenv中。看看pip installing in global site-packages instead of virtualenv的問題(和答案)。

基本上,解決方案包括修改virtualenv中的pip腳本的shebang,因爲它們指向錯誤的python安裝(全局而不是virtualenv)。只需將shebang改爲指向正確的位置,然後設置即可。

注意:信用應該去找出解決方案的大通里斯。

0

我有同樣的問題。它似乎是從Virtualenv 1.11.4開始解決的。

相關問題