--force-reinstall
在安装软件包之前,请先将其卸载(如果已安装)。与运行
pip uninstall -y dep && pip installdep包及其每个依赖项几乎相同。
--ignore-installed
忽略软件包及其Dep是否已经安装,覆盖已安装的文件。这意味着您可能会遇到以下情况:
--ignore-installed不卸载文件而将其
site-packages永久保留。想象一下,您
pkgname==1.0提供了以下模块
spam:
$ pip show -f pkgnameName: pkgnameVersion: 1.0...spam.py
并将下一个版本
pkgname==2.0重命名
spam为
eggs。运行时
pip install pkgname==2.0 --ignore-installed,
spam.py将不会删除它,除非您手动将其删除,否则它将永远变成孤儿。后果
--force-reinstall应该始终是首选;
--ignore-installed仅当您
时才使用,请确保重新安装将覆盖当前安装的文件。否则,由于中仍然存在过时的模块,因此重新安装后可能会导致模糊的导入错误
sys.path。例
重现最新
pip更改的示例,其中所有软件包均移至软件包下
_internal:创建一个新的虚拟环境并降级
pip至版本9:
$ mkvirtualenv testenv$ workon testenv(testenv) $ pip install "pip<10"
如果您现在
pip要通过升级到最新版本
--force-reinstall,请执行全新升级。然后,你必须用正确的封装结构
_internal和
_vendor:
(testenv) $ pip install pip --upgrade --force-reinstall(testenv) $ ls -l $VIRTUAL_ENV/lib/python3.7/site-packages/piptotal 16-rw-r--r-- 1 hoefling staff 21 19 Aug 11:47 __init__.py-rw-r--r-- 1 hoefling staff 623 19 Aug 11:47 __main__.pydrwxr-xr-x 4 hoefling staff 128 19 Aug 11:47 __pycache__drwxr-xr-x 25 hoefling staff 800 19 Aug 11:47 _internaldrwxr-xr-x 26 hoefling staff 832 19 Aug 11:47 _vendor
如果要使用以下方法升级
--ignore-installed:
(testenv) $ pip install pip --upgrade --ignore-installed(testenv) $ ls -l $VIRTUAL_ENV/lib/python3.7/site-packages/piptotal 392-rw-r--r-- 1 hoefling staff 21 19 Aug 12:33 __init__.py-rw-r--r-- 1 hoefling staff 623 19 Aug 12:33 __main__.pydrwxr-xr-x 14 hoefling staff 448 19 Aug 12:33 __pycache__drwxr-xr-x 25 hoefling staff 800 19 Aug 12:33 _internaldrwxr-xr-x 28 hoefling staff 896 19 Aug 12:33 _vendor-rw-r--r-- 1 hoefling staff 11910 19 Aug 12:33 basecommand.py-rw-r--r-- 1 hoefling staff 10465 19 Aug 12:33 baseparser.py-rw-r--r-- 1 hoefling staff 16474 19 Aug 12:33 cmdoptions.pydrwxr-xr-x 16 hoefling staff 512 19 Aug 12:33 commandsdrwxr-xr-x 5 hoefling staff 160 19 Aug 12:33 compat-rw-r--r-- 1 hoefling staff 32153 19 Aug 12:33 download.py-rw-r--r-- 1 hoefling staff 8121 19 Aug 12:33 exceptions.py-rw-r--r-- 1 hoefling staff 39950 19 Aug 12:33 index.py-rw-r--r-- 1 hoefling staff 5626 19 Aug 12:33 locations.pydrwxr-xr-x 5 hoefling staff 160 19 Aug 12:33 modelsdrwxr-xr-x 6 hoefling staff 192 19 Aug 12:33 operations-rw-r--r-- 1 hoefling staff 10980 19 Aug 12:33 pep425tags.pydrwxr-xr-x 8 hoefling staff 256 19 Aug 12:33 req-rw-r--r-- 1 hoefling staff 156 19 Aug 12:33 status_pres.pydrwxr-xr-x 16 hoefling staff 512 19 Aug 12:33 utilsdrwxr-xr-x 8 hoefling staff 256 19 Aug 12:33 vcs-rw-r--r-- 1 hoefling staff 32010 19 Aug 12:33 wheel.py
升级
pip有
--ignore-installed没有卸载以前的包版本第一,而且由于新的文件结构,新文件没有覆盖旧的。结果,旧文件现在变成孤立文件,不再被任何程序包拾取。甚至
pipuninstall pip不会删除孤立的文件。人们将需要手动清理它们。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)