这个错误看起来非常接近#5432“ pip install --upgrade pip breaks pip,仍然”。
环境
我使用Homebrew数据包管理器:Homebrew 2.1.89-07-23
描述
在原始的brew install python
安装中, /usr/local/bin/pip3
是一个符号链接。 它最终到达其目标文件: /usr/local/Cellar/python/3.7.4/bin/pip3
。
brew info python
帮助建议在/usr/local/opt/python/libexec/bin
使用未版本控制的符号链接: /usr/local/opt/python/libexec/bin/pip
是/usr/local/Cellar/python/3.7.4/bin/pip3
的符号链接。
pip install --upgrade pip
创建一个新文件/usr/local/bin/pip
而不是更新符号链接的目标,即/usr/local/Cellar/python/3.7.4/bin/pip3
。 此外,后一个文件不会更新。
由于PATH在/usr/local/opt/python/libexec/bin/pip
之前找到/usr/local/bin/pip
,所以一切都会失败...
预期行为
在更新pip
, /usr/local/bin/pip
应该是到/usr/local/opt/python/libexec/bin/pip
的符号链接。
如何繁殖
pip
的find -E /usr/local/ -type f -iregex '.*/pip[23]?' -print -delete
用Homebrew
重新安装python
Homebrew
brew reinstall python
检查/ usr / local / bin / pip *等的状态,并查找相似的索引节点。
注意:请注意没有/usr/local/bin/pip
。
ls -li /usr/local/bin/pip*
ls -li /usr/local/opt/python/libexec/bin/pip
ls -li /usr/local/opt/python/libexec/bin/../../bin/pip3
ls -li /usr/local/bin/../Cellar/python/3.7.4/bin/pip3
用pip
升级pip
pip
/usr/local/opt/python/libexec/bin/pip install --upgrade pip
重新执行上述步骤3。
试用/usr/local/bin/pip --version
试用/usr/local/opt/python/libexec/bin/pip --version
输出量
pommeau:~ bouge$ find -E /usr/local/ -type f -iregex '.*/pip[23]?' -print -delete
/usr/local//bin/pip3
/usr/local//bin/pip
find: /usr/local//etc/FileWaveInstallers/FlatPackage-Microsoft_Office_2019_VL_Serializer.pkg: Permission denied
find: /usr/local//etc/FileWaveInstallers/FlatPackage-Microsoft_AutoUpdate_4.3.18090901_Updater.pkg: Permission denied
find: /usr/local//etc/FileWaveInstallers/FlatPackage-Microsoft_Office_16.17.18090901_Installer.pkg: Permission denied
/usr/local//Cellar/python/3.7.4/bin/pip3
pommeau:~ bouge$ brew reinstall python
==> Reinstalling python
==> Downloading https://homebrew.bintray.com/bottles/python-3.7.4.mojave.bottle.
Already downloaded: /Users/bouge/Library/Caches/Homebrew/downloads/ffcfe300e2ad205387a2bdd27185d98d64621578d26d2f6ccbbcd091ff799fc8--python-3.7.4.mojave.bottle.tar.gz
==> Pouring python-3.7.4.mojave.bottle.tar.gz
==> /usr/local/Cellar/python/3.7.4/bin/python3 -s setup.py --no-user-cfg install
==> /usr/local/Cellar/python/3.7.4/bin/python3 -s setup.py --no-user-cfg install
==> /usr/local/Cellar/python/3.7.4/bin/python3 -s setup.py --no-user-cfg install
==> Caveats
Python has been installed as
/usr/local/bin/python3
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
/usr/local/opt/python/libexec/bin
If you need Homebrew's Python 2.7 run
brew install python<strong i="24">@2</strong>
You can install Python packages with
pip3 install <package>
They will install into the site-package directory
/usr/local/lib/python3.7/site-packages
See: https://docs.brew.sh/Homebrew-and-Python
==> Summary
🍺 /usr/local/Cellar/python/3.7.4: 3,869 files, 60MB
pommeau:~ bouge$ ls -li /usr/local/bin/pip*
17870036 lrwxr-xr-x 1 bouge wheel 34B 4 mar 14:11 /usr/local/bin/pip2@ -> ../Cellar/python@2/2.7.16/bin/pip2
17870037 lrwxr-xr-x 1 bouge wheel 36B 4 mar 14:11 /usr/local/bin/pip2.7@ -> ../Cellar/python@2/2.7.16/bin/pip2.7
36689213 lrwxr-xr-x 1 bouge wheel 31B 24 jul 15:54 /usr/local/bin/pip3@ -> ../Cellar/python/3.7.4/bin/pip3
36689214 lrwxr-xr-x 1 bouge wheel 33B 24 jul 15:54 /usr/local/bin/pip3.7@ -> ../Cellar/python/3.7.4/bin/pip3.7
12675428 -rwxr-xr-x@ 1 bouge wheel 263B 16 jan 2019 /usr/local/bin/pip_upgrade_outdated*
pommeau:~ bouge$ ls -li /usr/local/opt/python/libexec/bin/pip
36689211 lrwxr-xr-x 1 bouge staff 14B 24 jul 15:54 /usr/local/opt/python/libexec/bin/pip@ -> ../../bin/pip3
pommeau:~ bouge$ ls -li /usr/local/opt/python/libexec/bin/../../bin/pip3
36689157 -rwxr-xr-x 1 bouge staff 386B 24 jul 15:54 /usr/local/opt/python/libexec/bin/../../bin/pip3*
pommeau:~ bouge$ ls -li /usr/local/bin/../Cellar/python/3.7.4/bin/pip3
36689157 -rwxr-xr-x 1 bouge staff 386B 24 jul 15:54 /usr/local/bin/../Cellar/python/3.7.4/bin/pip3*
pommeau:~ bouge$ /usr/local/opt/python/libexec/bin/pip install --upgrade pip
Collecting pip
Using cached https://files.pythonhosted.org/packages/62/ca/94d32a6516ed197a491d17d46595ce58a83cbb2fca280414e57cd86b84dc/pip-19.2.1-py2.py3-none-any.whl
Installing collected packages: pip
Found existing installation: pip 19.1.1
Uninstalling pip-19.1.1:
Successfully uninstalled pip-19.1.1
Successfully installed pip-19.2.1
pommeau:~ bouge$ ls -li /usr/local/bin/pip*
36690799 -rwxr-xr-x 1 bouge wheel 234B 24 jul 15:55 /usr/local/bin/pip*
17870036 lrwxr-xr-x 1 bouge wheel 34B 4 mar 14:11 /usr/local/bin/pip2@ -> ../Cellar/python@2/2.7.16/bin/pip2
17870037 lrwxr-xr-x 1 bouge wheel 36B 4 mar 14:11 /usr/local/bin/pip2.7@ -> ../Cellar/python@2/2.7.16/bin/pip2.7
36690800 -rwxr-xr-x 1 bouge wheel 234B 24 jul 15:55 /usr/local/bin/pip3*
36690801 -rwxr-xr-x 1 bouge wheel 234B 24 jul 15:55 /usr/local/bin/pip3.7*
12675428 -rwxr-xr-x@ 1 bouge wheel 263B 16 jan 2019 /usr/local/bin/pip_upgrade_outdated*
pommeau:~ bouge$ ls -li /usr/local/opt/python/libexec/bin/pip
36689211 lrwxr-xr-x 1 bouge staff 14B 24 jul 15:54 /usr/local/opt/python/libexec/bin/pip@ -> ../../bin/pip3
pommeau:~ bouge$ ls -li /usr/local/opt/python/libexec/bin/../../bin/pip3
36689157 -rwxr-xr-x 1 bouge staff 386B 24 jul 15:54 /usr/local/opt/python/libexec/bin/../../bin/pip3*
pommeau:~ bouge$ ls -li /usr/local/bin/../Cellar/python/3.7.4/bin/pip3
36689157 -rwxr-xr-x 1 bouge staff 386B 24 jul 15:54 /usr/local/bin/../Cellar/python/3.7.4/bin/pip3*
pommeau:~ bouge$ /usr/local/bin/pip --version
pip 19.2.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
pommeau:~ bouge$ /usr/local/opt/python/libexec/bin/pip --version
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 583, in _build_master
ws.require(__requires__)
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 900, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 791, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.VersionConflict: (pip 19.2.1 (/usr/local/lib/python3.7/site-packages), Requirement.parse('pip==19.1.1'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/opt/python/libexec/bin/pip", line 6, in <module>
from pkg_resources import load_entry_point
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3241, in <module>
<strong i="25">@_call_aside</strong>
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3225, in _call_aside
f(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3254, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 585, in _build_master
return cls._build_from_requirements(__requires__)
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 598, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 786, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pip==19.1.1' distribution was not found and is required by the application
您可以提出与Homebrew相关的问题,并链接到此问题吗?
我认为他们比pip的维护者更有能力解决此问题。 如果他们认为上游点应该做些什么,我们将很高兴与他们合作解决此问题。
我一直觉得Homebrew应该修补点子,因此该消息建议使用brew upgrade pip
而不是(内置的) pip install
命令。 我相信Debian已经做到了(不确定RPM)。
pip可以通过使命令字符串成为全局变量(而不是_internal.utils.outdated
内嵌的内联变量)来简化操作,但是首先Homebrew必须愿意接受补丁。
以下步骤解决了我的问题。 共享它,以防有人需要:
cp /usr/local/opt/python/libexec/bin/pip /usr/local/opt/python/libexec/bin/pip_ORIG
mv /usr/local/bin/pip /usr/local/opt/python/libexec/bin/pip
ln -s /usr/local/opt/python/libexec/bin/pip /usr/local/bin/pip
pip --version
归功于此帖子。
请考虑向Homebrew提交问题
业余工作...
最有用的评论
以下步骤解决了我的问题。 共享它,以防有人需要:
归功于此帖子。