osx 在 vi​​rtualenv 中安装包

osx install packages inside virtualenv

我试图在没有 sudo 的情况下启动 virtualenv,但不幸的是它找不到(权限被拒绝)/lib/python2.7/site-packages/easy_install.py。所以我做了:

sudo virtualenv name_env

问题是现在pip是全球版的(不在pip里面): 哪个点: /usr/local/bin/pip 所以我不能在环境中安装任何包。 如果我在没有 sudo 的情况下启动 virtualenv:

virtualenv name_env

OSError: 命令 /Users/andrea/package_lambda/bin/python2.7 -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip wheel 失败,错误代码 2 有什么建议吗?

不要因为可以就使用 sudo

我建议您使用 brew 安装另一个 Python 环境,然后安装 pip,然后安装 virtualenv。这样,您将基本上纠正根本问题。

我会遵循这个方法:

brew install pyenv

pyenv install 2.7.11

或通过以下方式查看可用版本:

pyenv versions

这样,您可以安装不同的版本并根据需要在它们之间切换,例如:

pyenv global 2.7.11

然后你可以像这样安装pip

python -m easy_intall pip

然后像这样安装 virtualenv

python -m pip install virtualenv

正如 pouria 提到的,我认为确保您首先使用 pip 安装 virtualenv 是个好主意。我也同意在 OSX 上很少使用 sudo。

previous answer 所述,您还应检查虚拟环境 bin 中的文件是否正确。

我自己找到了解决方案。我使用的是 iterm 而不是终端(标准 mac OS X)。我使用终端:

sudo pip uninstall virtualenv
sudo pip install virtualenv
sudo cp /usr/local/bin/virtualenv /bin/virtualenv

然后我可以创建一个 virtualenv:

virtualenv name_env
source name_env/bin/activate

要在其上安装 python 包,我使用:

sudo pip install --target=name_env/lib/python2.7/site-packages/ package name

我有以下文件~/.pydistutils.cfg,内容为

[install]
prefix=

暂时删除这个文件解决了我的问题(我有这个文件来解决不同的问题)