Raj*_*mon 85 upgrade python pip
我使用 安装了 pip get-pip.py,但pip freeze执行后出现以下错误:
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/freeze.py", line 74, in run
req = pip.FrozenRequirement.from_dist(dist, dependency_links, find_tags=find_tags)
File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 299, in from_dist
assert len(specs) == 1 and specs[0][0] == '=='
AssertionError
Storing debug log for failure in /home/simon/.pip/pip.log
Run Code Online (Sandbox Code Playgroud)
我已经检查过 pip 1.7 版是最新的。但是,通过更新 pippip install -U pip并没有更新我的 pip。我该如何解决这个问题?
simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
simon@simon-OptiPlex-780:~/Nightybuild$ pip install -U pip
Downloading/unpacking pip
Downloading pip-7.1.2-py2.py3-none-any.whl (1.1MB): 1.1MB downloaded
Installing collected packages: pip
Successfully installed pip
Cleaning up...
simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
Run Code Online (Sandbox Code Playgroud)
Byt*_*der 91
我通常只运行以下命令来升级pip2(=pip默认情况下)和pip3:
sudo -H pip3 install --upgrade pip
sudo -H pip2 install --upgrade pip
Run Code Online (Sandbox Code Playgroud)
您必须确保最后升级要对pip没有数字的命令做出反应的版本(对于 Python 2 或 3)。
另请注意,这会保留通过apt-get或任何其他包管理器安装的旧打包版本,但会添加与系统包无关的新版本。该pip-installed包将是首选,但你不应该删除apt-get任何-installed的,因为包管理器无法知道,任何pip版本的安装,否则。
Foa*_*oad 53
我觉得
pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)
命令不再正常工作。正确的命令应该是:
对于 Python 3:
python3 -m pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)
对于 Python 2:
python2 -m pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)
小智 7
转到网站https://pypi.python.org/pypi/pip。
复制(或下载)源链接(以 结尾.tar.gz)。
对于 9.0.1,链接是https://pypi.python.org/pypi?:action=show_md5&digest=35f01da33009719497f01a4ba69d63c9。
安装程序:
wget Link goes here
tar -xzvf pip-9.0.1.tar.gz
cd pip-9.0.1
sudo python3 setup.py installRun Code Online (Sandbox Code Playgroud)
版本应更改为最新版本,链接可以更新为最新版本的链接。
这应该有效。
小智 5
我认为值得一提的是,我在下面要解释的是,如果您希望pip指向 Python 2,而pip3指向 Python 3。我提到这一点的原因是因为当您升级 pip3 时,它也会接管 pip 命令作为好。这是一个有点奇怪的约定,因为默认情况下python指向 2.x 而python3指向 3.x。话虽如此...
如果你想让最新版本的python 2.x pip和python 3.x pip3在同一台机器上共存(2.x使用pip,3.x使用pip3),你需要执行以下操作:
sudo apt-get install python-pip python3-pip --yes
sudo python3 -m pip install pip --upgrade --force
sudo python -m pip install pip --upgrade --force # this line associates pip with Python 2
Run Code Online (Sandbox Code Playgroud)
其他人提供的其他答案没有提到在运行sudo pip3 install pip --upgrade后,您最终会使用pip命令在 python 3.x 目录而不是 python 2.x 目录中安装软件包。
我的一部分认为我们应该在升级 pip3 之后离开 pip(即使它是 pip -> pip3),但存在一种危险,即人们已经期望 pip 像 python 一样运行——两者都指向 python 2.x。换句话说,人们可能被训练为在 python 2.x 中使用pip/python,就像他们被训练为在 python 3.x 中使用pip3/python3 一样。