我最近做了一个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
)停止请求我升级。这是为什么?这只是我还是这种奇怪的行为?
答案 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版本即可。