即使我尝试更新它,也无法更新pip3

时间:2017-01-11 00:07:15

标签: python python-3.x pip updates

我最近做了一个pip3 list来检查我在虚拟环境中安装了哪些模块/项目,并且我得到了升级pip的建议。我尝试过但似乎无法更新/升级。我做了:

$ pip3 list
namespaces (4.2.0)
pip (8.0.2)
scikit-learn (0.18.1)
setuptools (19.4)
six (1.10.0)
wheel (0.26.0)
You are using pip version 8.0.2, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

所以我尝试这样做,它说它有效:

$ pip install --upgrade pip
Requirement already up-to-date: pip in /Users/user/home_simulation_research/hbf_tensorflow_code/venv/lib/python2.7/site-packages
因为它说它已经在那里我已经做了pip3列表,它一直说我实际上并没有升级它。由于使用标准pip命令进行更新并不起作用,我尝试使用pip3进行更新,但它仍然无法正常工作:

pip3 install --upgrade pip3
Collecting pip3
  Could not find a version that satisfies the requirement pip3 (from versions: )
No matching distribution found for pip3
You are using pip version 8.0.2, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

为什么它不起作用?

当我认为它没有工作时,我尝试使用pip3升级pip和pip3来升级pip3。出于某种原因,后来似乎不起作用,但第一个起作用。即做:

$ pip3 install --upgrade pip

工作(或至少pip3 list)停止请求我升级。这是为什么?这只是我还是这种奇怪的行为?

6 个答案:

答案 0 :(得分:1)

当你运行Running Count = TOTALYTD ( COUNTROWS ( 'My Table' ) , 'My Table'[My Date] ) 时,你列出了为python3安装的软件包,当你运行pip3 list时,你正在检查python2软件包的更新。当你运行pip install --upgrade pip时,这会产生错误,因为没有名为pip3的包,pip3是pip包中提供的命令行工具。当你最终运行pip3 install --upgrade pip3时,你正在做正确的事情(安装python3的更新,包名是pip)。

答案 1 :(得分:1)

对我有用的是卸载并安装pip。

要卸载pip,请执行以下操作:

pip uninstall pip

尽管我去了/usr/local/bin并使用了以下点名删除了所有内容:

rm -rf pip*

有些pip3东西还很奇怪。

然后我使用(不推荐使用的)sudo easy install安装pip:

sudo easy_install pip

尽管该命令已被弃用,但仍需要在mac中进行其他操作,但目前为止仍然有效(并使我的jupyter笔记本再次工作,从而解决了此问题Jupyter Notebook can't find modules for python 3.6)。

答案 2 :(得分:1)

如果您注意到站点包路径中的差异,您将得到它。

使用pip3 /usr/local/lib/python3.6/site-packages时,显示的路径是python3.6。

参考:

(automl) brandomiranda~ ❯ pip3 install ipykernel --upgrade
python3 -m ipykernel install --user
Requirement already up-to-date: ipykernel in /usr/local/lib/python3.6/site-packages (5.1.3)

当您仅使用pip时,您会看到它是python3.7和完全不同的站点软件包路径./miniconda3/envs/automl/lib/python3.7/site-packages

参考:

(automl) brandomiranda~ ❯ pip install --upgrade pip
Requirement already up-to-date: pip in ./miniconda3/envs/automl/lib/python3.7/site-packages (19.3.1)

所以两者是不同的:pip3指向Python3.6的直接系统路径(/usr/local/lib docs),而pip指向虚拟环境的路径({{ 1}}),其中安装了python3.7。

您需要确定要升级和使用哪一个。拥有虚拟环境是最佳实践。

答案 3 :(得分:1)

问题似乎是新的虚拟环境正在使用旧版本的pip。请注意,pip是从virtualenv随附的源tarfile(或wheel)安装在site-packages / virtualenv_support目录。

$ ls -l /path/to/site-packages/virtualenv_support
pip-9.1-py2.py3-none-any.whl

解决此问题的快速方法是确保每次创建新的virtualenv时都升级pip,如下所示:

$ virtualenv venv
$ venv/bin/pip install -U pip

或者,确保您具有最新版本的virtualenv。根据他们的发行说明,virtualenv == 16正在使用pip == 10。

$ pip install -U virtualenv

最后,由于virtualenv在virtualenv_support中查找pip * .whl,所以这也将起作用:

$ mv /path/to/site-packages/virtualenv_support/pip*.whl{,bak}
$ pip wheel -w /path/to/site-packages/virtualenv_support/ 'pip==18'

所有新的virtualenvs将使用您安装到virtualenv_support中的pip版本。但是,这感觉很hack。

(尝试使用virtualenv==16。这将导致所有新的虚拟环境带有pip==18。)

Stackoverflow帖子-https://stackoverflow.com/questions/51644402/i-keep-getting-a-message-to-upgrade-pip

答案 4 :(得分:0)

我倾向于运行pip install而不是python3 -m pip install upgrade --user来指定要使用的python

答案 5 :(得分:0)

要使我摆脱类似的困境,我只需使用以下命令重新安装pip即可:

curl https://bootstrap.pypa.io/get-pip.py | python3.7

只需指定要与pip一起安装的正确的python版本即可。

网址来自https://pip.pypa.io/en/stable/installing/