即使已经安装了最新版本,为什么还要安装pip升级重新安装包?

2024-05-23 13:44:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个脚本来自动更新已安装的python软件包。该脚本每次启动应用程序时都会运行,并确保如果有新的python包版本可用,它会下载并安装它。我在脚本中使用以下行来实现这一点-

案例I

python -m pip install --upgrade my_pyPackage 

与上面的行脚本工作得非常好。如果软件包已安装,则会给出以下输出-

Looking in indexes: <pypi_artifactory_url>
Requirement already satisfied: my_pyPackage in c:\path\to\site-packages (4.0.3)

病例II

但是,如果我将命令修改为-

python -m pip install --upgrade my_pyPackage --target <path\to\custom\dir>

如果新版本可用,此脚本可以正常工作。但,即使新版本不可用,pip也会一次又一次地将缓存的版本安装到目标目录中

输出如下-

Looking in indexes: <pypi_artifactory_url>
Collecting my_pyPackege
  Using cached my_pyPackege-4.0.3-py3-none-any.whl
Installing collected packages: my_pyPackege
Successfully installed my_pyPackege-4.0.3

我希望避免/覆盖案例II行为,并希望输出与案例I中的一样。 是否有解决此问题的解决方案或更好的方法?


Tags: installpipin版本脚本pypiurlmy
2条回答

谢谢@sinoroc

用下面的行替换python -m pip install upgrade my_pyPackage target ...解决了我的问题

python -m venv target_dir_name path\to\target_dir
path\to\target_dir\Scripts\activate.bat
python -m pip install  upgrade my_pyPackage 
path\to\target_dir\Scripts\deactivate.bat

另一种(更简单,IMO)方法是简单地使用virtualenv本身中的pip可执行文件

path\to\target_dir\Scripts\pip install  upgrade  my_pyPackage

相关问题 更多 >