pip3
在virtualenv
中安装包会导致该包被安装在全局的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
我在.bash_profile
文件中更改了$PATH
变量,并添加了以下行:
export PATH=/usr/local/bin:$PATH
运行 which python3
命令会返回 /usr/local/bin/python3
(需要重新启动 shell)。
注意:尽管如此,which python3
仍然返回 /usr/bin/python
。
使用 pip3
安装了 virtualenv
:
pip3 install virtualenv
接下来,创建一个新的虚拟环境
并激活它:
virtualenv testpy3 -p python3
cd testpy3
source bin/activate
注意:如果我未指定 -p python3,那么虚拟环境的 bin 文件夹中将缺少 pip。
运行 which pip
和 which pip3
命令,都会返回虚拟环境文件夹:
/Users/kristof/VirtualEnvs/testpy3/bin/pip3
现在,当我尝试在激活的虚拟环境中使用pip安装Markdown时,pip会将其安装在全局的site-packages文件夹中,而不是虚拟环境的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.py
pip/
pip-1.5.dist-info/
pkg_resources.py
setuptools/
setuptools-2.0.2.dist-info/
/usr/local/lib/python3.3/site-packages
的内容:
Markdown-2.3.1-py3.3.egg-info/
__pycache__/
easy-install.pth
markdown/
pip-1.4.1-py3.3.egg/
setuptools-2.0.1-py3.3.egg
setuptools.pth
virtualenv-1.11-py3.3.egg-info/
virtualenv.py
virtualenv_support/
正如您所看到的,全局 (global) site-packages 文件夹包含 Markdown,而虚拟环境文件夹则不包含。
注意:在另一个虚拟机上,我之前已安装了 Python2 和 Python3(按照这些说明进行操作),并且在使用 Python3 时遇到了同样的问题;但在基于 Python2 的虚拟环境中安装包却非常顺利。
非常感谢任何技巧、提示等。
pip3
?)。这本身可能并不是坏事,但你应该意识到这一点。 - jfs