【问题标题】:Nothing related to python works without sudo没有 sudo,没有任何与 python 相关的工作
【发布时间】:2016-03-03 14:22:00
【问题描述】:

我的处境非常糟糕,因为我运行了几个命令却没有完全理解它们的影响。

我无法使用 pip,无法在没有前缀 sudo 的情况下使用 pip 安装任何东西。我可以用 sudo 安装它。 以下是一些错误跟踪

LAP-044:Downloads pratik$ pip install requests
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

这是因为 setuptools。所以我尝试重新安装设置工具。我收到此错误。

LAP-044:Downloads pratik$ curl https://bootstrap.pypa.io/ez_setup.py -o - | python
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12059  100 12059    0     0  12823      0 --:--:-- --:--:-- --:--:-- 12815
Traceback (most recent call last):
  File "<stdin>", line 415, in <module>
  File "<stdin>", line 411, in main
  File "<stdin>", line 327, in download_setuptools
  File "<stdin>", line 347, in _resolve_version
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 431, in open
    response = self._open(req, data)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 449, in _open
    '_open', req)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1240, in https_open
    context=self._context)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1197, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>

如果我用python3运行相同的setuptools安装成功。谁能告诉我到底出了什么问题以及如何解决?

【问题讨论】:

  • 您是否尝试在虚拟环境中运行pip?如果不是,它将尝试安装到机器范围的位置,您通常需要 root 权限。
  • 您可能还想检查which pipwhich python 的输出。
  • @WayneWerner :我得到 /usr/local/bin/python 和 /Library/Frameworks/Python.framework/Versions/3.5/bin/pip 用于哪个 python 和哪个 pip。
  • 看起来您的 pip 和您的 python 不匹配。 /usr/local/bin 中有pip 吗?
  • 是的。 /usr/local/bin 中有 pip 以及 pip2 和 pip2.7 也有

标签: python setuptools


【解决方案1】:

我建议您创建一个虚拟环境,您可以在其中安装所有内容而无需使用 sudo。这是在 Python 中最简洁的工作方式。

显然,如果您的 Python 可执行文件位于需要 root 权限的目录中,您将需要 sudo

创建后,您应该激活它:

$ source myvirtualenv/bin/activate

然后你就可以使用 pip 安装包了:

$ (myvirtualenv) pip install [somepackage]

根据您在 virtualenv 中使用的 Python 版本,您可能需要安装 pip。但它通常附带 Python 2.7,这是默认的 Python 版本

virtualenv docs

【讨论】:

    猜你喜欢
    • 2017-09-30
    • 2020-04-07
    • 2018-12-18
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 2022-01-19
    • 1970-01-01
    相关资源
    最近更新 更多