如何修复 python3 上的 pip 错误升级
How to fix a bad upgrade of pip on python3
在有人拍我的手之前,我已经安装了 venv/virtualenv 来设置虚拟环境,但我遇到了其他问题,所以有人建议我将我的 pip3 版本升级到当前版本(现在是 22.0.4)
我不知何故搞砸了 pip 和 pip3 所以希望有人能帮助我。
我试图通过 运行ning
在我的 Ubuntu 16.04 盒子上升级我的 pip 版本
pip3 install --upgrade pip
我也试过运行宁
pip3 install --upgrade pip3
升级后,我在尝试 运行 pip3 时一直出错,所以我删除了它,打算用 get-pip.py 脚本安装。
但是,现在当我尝试使用
安装 pip3 时
sudo python3 /tmp/get-pip.py
我不断收到 AttributeError:
$ sudo python3 /tmp/get-pip.py
Traceback (most recent call last):
File "/tmp/get-pip.py", line 27077, in <module>
main()
File "/tmp/get-pip.py", line 135, in main
bootstrap(tmpdir=tmpdir)
File "/tmp/get-pip.py", line 111, in bootstrap
monkeypatch_for_cert(tmpdir)
File "/tmp/get-pip.py", line 92, in monkeypatch_for_cert
from pip._internal.commands.install import InstallCommand
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 656, in _load_unlocked
File "<frozen importlib._bootstrap>", line 626, in _load_backward_compatible
File "/tmp/tmpu1lmh2fr/pip.zip/pip/_internal/commands/__init__.py", line 9, in <module>
...
...
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 656, in _load_unlocked
File "<frozen importlib._bootstrap>", line 626, in _load_backward_compatible
File "/tmp/tmpu1lmh2fr/pip.zip/pip/_vendor/pyparsing.py", line 5677, in <module>
File "/tmp/tmpu1lmh2fr/pip.zip/pip/_vendor/pyparsing.py", line 1488, in setResultsName
File "/tmp/tmpu1lmh2fr/pip.zip/pip/_vendor/pyparsing.py", line 1491, in _setResultsName
File "/tmp/tmpu1lmh2fr/pip.zip/pip/_vendor/pyparsing.py", line 1445, in copy
AttributeError: module 'copy' has no attribute 'copy'
有人可以指点我有关如何重新安装 pip/pip3 或如何解决此 AttributeError 的说明吗?希望该解决方案也能保留我之前下载的旧模块。谢谢
检查是否有文件/tmp/copy.py
或目录+文件/tmp/copy/__init__.py
。试试这些命令:sudo python3 -c "import copy; print(copy.copy)"
和 sudo python3 -c "import copy; print(copy.__file__)"
如果其中任何一个存在,它将被导入而不是 standard module copy
因为 Python 预先设置了脚本的目录(脚本是 /tmp/get-pip.py
,目录 /tmp/
) 在 sys.path
的开头,所以它是 Python 开始查找 modules/packages.
的地方
在有人拍我的手之前,我已经安装了 venv/virtualenv 来设置虚拟环境,但我遇到了其他问题,所以有人建议我将我的 pip3 版本升级到当前版本(现在是 22.0.4)
我不知何故搞砸了 pip 和 pip3 所以希望有人能帮助我。
我试图通过 运行ning
在我的 Ubuntu 16.04 盒子上升级我的 pip 版本pip3 install --upgrade pip
我也试过运行宁
pip3 install --upgrade pip3
升级后,我在尝试 运行 pip3 时一直出错,所以我删除了它,打算用 get-pip.py 脚本安装。
但是,现在当我尝试使用
安装 pip3 时sudo python3 /tmp/get-pip.py
我不断收到 AttributeError:
$ sudo python3 /tmp/get-pip.py
Traceback (most recent call last):
File "/tmp/get-pip.py", line 27077, in <module>
main()
File "/tmp/get-pip.py", line 135, in main
bootstrap(tmpdir=tmpdir)
File "/tmp/get-pip.py", line 111, in bootstrap
monkeypatch_for_cert(tmpdir)
File "/tmp/get-pip.py", line 92, in monkeypatch_for_cert
from pip._internal.commands.install import InstallCommand
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 656, in _load_unlocked
File "<frozen importlib._bootstrap>", line 626, in _load_backward_compatible
File "/tmp/tmpu1lmh2fr/pip.zip/pip/_internal/commands/__init__.py", line 9, in <module>
...
...
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 656, in _load_unlocked
File "<frozen importlib._bootstrap>", line 626, in _load_backward_compatible
File "/tmp/tmpu1lmh2fr/pip.zip/pip/_vendor/pyparsing.py", line 5677, in <module>
File "/tmp/tmpu1lmh2fr/pip.zip/pip/_vendor/pyparsing.py", line 1488, in setResultsName
File "/tmp/tmpu1lmh2fr/pip.zip/pip/_vendor/pyparsing.py", line 1491, in _setResultsName
File "/tmp/tmpu1lmh2fr/pip.zip/pip/_vendor/pyparsing.py", line 1445, in copy
AttributeError: module 'copy' has no attribute 'copy'
有人可以指点我有关如何重新安装 pip/pip3 或如何解决此 AttributeError 的说明吗?希望该解决方案也能保留我之前下载的旧模块。谢谢
检查是否有文件/tmp/copy.py
或目录+文件/tmp/copy/__init__.py
。试试这些命令:sudo python3 -c "import copy; print(copy.copy)"
和 sudo python3 -c "import copy; print(copy.__file__)"
如果其中任何一个存在,它将被导入而不是 standard module copy
因为 Python 预先设置了脚本的目录(脚本是 /tmp/get-pip.py
,目录 /tmp/
) 在 sys.path
的开头,所以它是 Python 开始查找 modules/packages.