使用pip3在a中安裝軟件包將virtualenv導致該軟件包安裝在global site-packages文件夾中,而不是在virtualenv文件夾中。這是我在OS X Mavericks(10.9.1)上設置Python3和virtualenv的方法:我使用Homebrew安裝了Python3:ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"brew install python3 --with-brewed-openssl更改了中的$PATH變量.bash_profile;添加了以下行:export PATH=/usr/local/bin:$PATH運行which python3返回/usr/local/bin/python3(重新啟動外殼程序之后)。注意:盡管which python3仍然返回/ usr/bin/python。virtualenv使用安裝pip3:pip3 install virtualenv接下來,創建一個新的virtualenv并激活它:virtualenv testpy3 -p python3cd testpy3source bin/activate注意:如果不指定-p python3,則virtualenv中bin文件夾中將缺少pip。正在運行,which pip并且which pip3都返回virtualenv文件夾:/Users/kristof/VirtualEnvs/testpy3/bin/pip3現在,當我嘗試在激活的virtualenv中使用pip安裝例如Markdown時,pip將安裝在全局site-packages文件夾中,而不是virtualenv的site-packages文件夾中。pip install markdown運行pip list收益:Markdown (2.3.1)pip (1.4.1)setuptools (2.0.1)virtualenv (1.11)內容/Users/kristof/VirtualEnvs/testpy3/lib/python3.3/site-packages:__pycache__/_markerlib/easy_install.pypip/pip-1.5.dist-info/pkg_resources.pysetuptools/setuptools-2.0.2.dist-info/內容/usr/local/lib/python3.3/site-packages:Markdown-2.3.1-py3.3.egg-info/__pycache__/easy-install.pthmarkdown/pip-1.4.1-py3.3.egg/setuptools-2.0.1-py3.3.eggsetuptools.pthvirtualenv-1.11-py3.3.egg-info/virtualenv.pyvirtualenv_support/如您所見,全局 site-packages文件夾包含Markdown,而virtualenv文件夾則不包含。注意:之前我在不同的VM上安裝了Python2和Python3(遵循這些說明),并且Python3遇到了相同的問題。不過,在基于Python2的virtualenv中安裝軟件包的工作非常正常。任何提示,暗示……將不勝感激。
3 回答

富國滬深
TA貢獻1790條經驗 獲得超9個贊
我也有這個問題。在我的Mavericks Mac上的Python 3.3虛擬環境中pip install <package_name>
的/bin
目錄中調用會導致將Python程序包安裝在Python 2.7全局站點程序包目錄中。盡管我的$ PATH從包含目錄開始pip
。奇怪的。在CentOS上不會發生這種情況。對我來說,解決方案是致電pip3
而不是pip
。當我已經安裝了PIP通過在虛擬環境中ez_setup,三“畫中畫”的可執行文件已被安裝在/bin
目錄- pip
,pip3
和pip3.3
。奇怪的是,所有三個文件都完全相同。呼喚pip3 install <package_name>
導致將Python軟件包正確安裝到本地site-packages目錄中。pip
使用完整路徑名調用虛擬環境也可以正常工作。我很想知道為什么我的Mac為什么不像我期望的那樣使用$ PATH。
添加回答
舉報
0/150
提交
取消