【问题标题】:pip install and sudo on macmac 上的 pip install 和 sudo
【发布时间】:2014-09-16 09:10:02
【问题描述】:

我想重新安装 virtualenv。我成功了:

pip uninstall virtualenv

然后我尝试重新安装:

pip install virtualenv

导致错误的原因:error: /lib/python2.7/site-packages/virtualenv.py: Permission denied

所以我尝试了:

sudo pip install virtualenv

导致错误的原因:

Traceback (most recent call last):
  File "/usr/local/bin/pip", line 5, in <module>
     from pkg_resources import load_entry_point
ImportError: No module named pkg_resources

Q1:为什么sudo会导致这样的问题?我听说这个错误是由于没有正确安装setuptools造成的。但是为什么只使用 sudo 命令呢?这是否会导致 python 到别处寻找它的资源?

关于我的设置的一些细节:

我使用的是 MacOS 10.9.4。

我不知道为什么,但我似乎在两个位置设置了 python:

  1. /usr/local/lib/
    • /usr/local/lib/python2.7/
    • /usr/local/lib/python3.3/
  2. /库
    • /lib/python2.7/
    • /lib/python3.3/

Q2:为什么是这两个位置?据我所知,pip 和 pip3 在第二个位置安装东西。也许我运行的 python 版本太多了?

这是来自交互式 python 控制台的 sys.path 打印:

['',
 '/lib/python2.7/site-packages/setuptools-5.4.1-py2.7.egg',
 '/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.4.1-py2.7.egg',
 '/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Sphinx-1.2.2-py2.7.egg',
 '/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Jinja2-2.7.2-py2.7.egg',
 '/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/docutils-0.11-py2.7.egg',
 '/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Pygments-1.6-py2.7.egg',
 '/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MarkupSafe-0.23-py2.7-macosx-10.9-x86_64.egg',
 '/usr/local/lib/python2.7/site-packages/pip-1.4.1-py2.7.egg',
 '/usr/local/lib/python2.7/site-packages/Sphinx-1.2.2-py2.7.egg',
 '/usr/local/lib/python2.7/site-packages/Jinja2-2.7.2-py2.7.egg',
 '/usr/local/lib/python2.7/site-packages/docutils-0.11-py2.7.egg',
 '/usr/local/lib/python2.7/site-packages/Pygments-1.6-py2.7.egg',
 '/usr/local/lib/python2.7/site-packages/MarkupSafe-0.23-py2.7-macosx-10.9-x86_64.egg',
 '/lib/python2.7/site-packages',
 '/lib/python2.3/site-packages',
 '/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
 '/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
 '/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
 '/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
 '/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
 '/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
 '/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
 '/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
 '/Users/david/Library/Python/2.7/lib/python/site-packages',
 '/Library/Python/2.7/site-packages',
 '/usr/local/lib/python2.7/site-packages',
 '/lib/python2.3/site-packages']

【问题讨论】:

  • brew doctor 运行起来可能是件好事。

标签: python macos pip virtualenv


【解决方案1】:

虽然我不确定我是否完全了解原始问题的根源(不知道 Q1 的答案),但我确实通过使用 Homebrew 卸载/取消链接 Python 来修复它,然后按照 THIS 设置所有内容教程。我得到的主要教训是:

  • Mac 已经安装了一个 python 版本。这就是为什么在/lib 中有 python 安装。我还使用 Homebrew 安装了 python,它在 /usr/local/lib/ 中创建了第二个安装。经过一段时间不小心我正在使用/安装哪些软件包来赶上我。
  • virtualenv 是一种出色且简单的方法,可以将版本和依赖项需求本地化和隔离到各个项目。我推迟了使用它,因为我认为它可能很复杂,但事实并非如此,它可能会为我省去这个麻烦。

【讨论】:

    猜你喜欢
    • 2014-02-03
    • 1970-01-01
    • 2014-04-17
    • 2015-06-01
    • 2015-06-13
    • 2016-08-04
    • 2015-03-16
    • 1970-01-01
    • 2018-08-12
    相关资源
    最近更新 更多