【问题标题】:osx install packages inside virtualenvosx 在 vi​​rtualenv 中安装包
【发布时间】:2016-02-09 18:06:10
【问题描述】:

我尝试在没有 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 failed with错误代码 2 有什么建议吗?

【问题讨论】:

  • 如果任何答案解决了您的问题,请将其标记为这样,以便线程关闭并且问题在板上显示为已回答。

标签: python macos pip virtualenv


【解决方案1】:

不要仅仅因为可以使用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

【讨论】:

  • 感谢您的回答。但是 python easy_install -m pip: /opt/local/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: 无法打开文件 'easy_install': [Errno 2] 否这样的文件或目录
  • 抱歉。我在命令中有错字。我刚刚纠正了它。它是python -m easy_install pip,而不是python easy_install -m pip。我的错。
  • 我的权限被拒绝(因为我没有使用 sudo):[Errno 13] Permission denied: '/lib/python2.7/site-packages/test-easy-install-22088.write -测试'
  • 从 python.org 下载 Python 并安装它。由于某种原因,您似乎遇到了权限问题。
  • 我下载并安装了最后一个版本 2.7.11 当然它询问了我的密码所以我猜它相当于 sudo.... 我不明白如何在 lib 文件夹中安装软件须藤。
【解决方案2】:

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

正如previous answer 中提到的,您还应该检查虚拟环境的 bin 中的文件是否正确。

【讨论】:

  • 感谢您的回答,但是路径 VIRTUAL_ENV 是正确的,并且已使用 pip 安装了 virtualenv
【解决方案3】:

我自己找到了解决方案。我使用的是 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

【讨论】:

    【解决方案4】:

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

    [install]
    prefix=
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 2012-01-16
      • 2013-11-02
      • 2015-10-08
      • 1970-01-01
      • 2016-04-03
      相关资源
      最近更新 更多