首页 > 解决方案 > Pip 坏了,我没有管理员权限

问题描述

我现在已经在这个问题上投入了大约 6 个小时,而且我越来越远。这就是发生的事情。

我正在使用具有 Python 2.7 和 Python 3.5 的共享 Linux 机器,但我没有管理员权限。我使用的是 Python 3.5,我想使用 seaborn 包,我发现我想要的特定标签功能仅在较新版本中可用。所以没问题“pip3 install seaborn --upgrade”。

一切都发生得如此之快,但出了点问题,根据互联网的建议,我最终升级了一些其他软件包,如 matplotlib、setuptools,并最终升级了 pip 本身。

这是真正出错的地方。皮普刚刚破产。当我运行 pip3 --version 时会发生这种情况:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 33, in vendored
    __import__(vendored_name, globals(), locals(), level=0)
ImportError: No module named 'pip._vendor.pkg_resources'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 13, in <module>
    from pip.exceptions import InstallationError, CommandError, PipError
  File "/usr/lib/python3/dist-packages/pip/exceptions.py", line 6, in <module>
    from pip._vendor.six import iteritems
  File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 75, in <module>
    vendored("pkg_resources")
  File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 36, in vendored
    __import__(modulename, globals(), locals(), level=0)
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2927, in <module>
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2913, in _call_aside
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2952, in _initialize_master_working_set
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 956, in subscribe
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2952, in <lambda>
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2515, in activate
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2097, in declare_namespace
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2047, in _handle_ns
  File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2066, in _rebuild_mod_path
AttributeError: '_NamespacePath' object has no attribute 'sort'

调用堆栈中的第一行是“from pip import main”,所以我尝试运行 pip --version 而不是 pip3,现在我得到:

Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

这个错误在整个互联网上都是 pip 本身的一个错误,但所有的解决方案都涉及我无权做的事情。我尝试使用“python -m pip ...”卸载并重新安装旧版本的 pip,但这对 pip3 错误没有帮助,它在几行后提示了相同的错误。而且我不能将此快捷方式与 pip3 (python3 -m pip...) 一起使用,因为无论如何都会发生此错误。

最糟糕的是,我原来的程序现在完全死了。我什至无法在不崩溃的情况下导入 seaborn。

Traceback (most recent call last):
  File "/u/hailey/.local/lib/python3.5/site-packages/matplotlib/__init__.py", line 861, in __setitem__
    cval = self.validate[key](val)
KeyError: 'axes.color_cycle'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "nn.py", line 9, in <module>
    import seaborn as sns
  File "/usr/lib/python3/dist-packages/seaborn/__init__.py", line 13, in <module>
    set()
  File "/usr/lib/python3/dist-packages/seaborn/rcmod.py", line 98, in set
    set_palette(palette, color_codes=color_codes)
  File "/usr/lib/python3/dist-packages/seaborn/rcmod.py", line 491, in set_palette
    mpl.rcParams["axes.color_cycle"] = list(colors)
  File "/u/hailey/.local/lib/python3.5/site-packages/matplotlib/__init__.py", line 868, in __setitem__
    'list of valid parameters.' % (key,))
KeyError: 'axes.color_cycle is not a valid rc parameter. See rcParams.keys() for a list of valid parameters.'

在这一点上,我决定如果我只是将我自己的干净版本的 Python 下载到我有权限的本地目录中,一切都会更容易。所以我下载并在本地目录中设置了新版本的 Python 3.6。然后我用这个运行了我的原始程序,我被告知我没有名为“numpy”的模块。合理的。让我们尝试安装 numpy。

Obtaining file:///u/hailey/python36/Python-3.6.0
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/u/hailey/python36/Python-3.6.0/setup.py", line 4, in <module>
        import sys, os, importlib.machinery, re, optparse
    ImportError: No module named machinery

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /u/hailey/python36/Python-3.6.0/

现在我被引导到一个推荐运行“setup.py install”的页面,这听起来很简单。但是没有。

bash: /u/hailey/python36/Python-3.6.0/setup.py: Permission denied

现在我放弃了,因为显然我对 Python 一无所知。我真的很感激这方面的一些帮助。在这一点上,即使只是恢复我昨天的状态也很好,因为我可以在没有 seaborn 图表上的额外标签的情况下生活。感谢大家!

标签: pythonpython-3.xpip

解决方案


推荐阅读