【问题标题】:How do I force pip to install a package directly from the Internet not local cache?如何强制 pip 直接从 Internet 而不是本地缓存安装包?
【发布时间】:2019-08-24 11:07:49
【问题描述】:

我正在使用以下命令安装包 ibm_db:

pip3 install ibm_db

但是,由于停电,安装中途停止。 现在,该软件包在我的系统中可用:

pip3 list --local | grep ibm
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
ibm-db (3.0.1)

但是当我尝试导入它时,它不起作用。

>>> import ibm_db
>>> ModuleNotFoundError: No module named 'ibm_db

我怀疑软件包安装出了点问题,但每次我尝试重新安装(卸载,然后重新安装)时,它现在都使用本地缓存的版本,问题仍然存在。

我想尝试直接从 Internet 重新安装软件包,而不必使用我的本地缓存,但我不想清除整个本地缓存。

【问题讨论】:

    标签: python-3.x caching pip


    【解决方案1】:

    https://pip.readthedocs.io/en/stable/reference/pip_install/#caching

    pip install --no-cache-dir …
    

    附言。但我怀疑问题出在缓存中。再次卸载并安装软件包后,一切都必须正常。如果不是 - 问题出在其他地方。

    【讨论】:

    • 感谢您的回答。你是对的。事实证明,问题是我开发应用程序的虚拟环境在被复制到另一个文件夹后被破坏了。 pip3 将软件包安装到错误的虚拟环境中,而在当前虚拟环境中使用的“python3”版本是系统提供的版本,而不是虚拟环境指定的版本。
    • Python 虚拟环境不可重定位。
    • 是的,我最终了解到 virtualenv 并不正式支持重新定位虚拟环境。不过,经过几次黑客攻击后,我确实设法重新定位并修复了环境。顺便说一句,有没有一种标准的方式来运送一个包含所有必要库的完整 python 项目?假设所有的库都是完全用纯 python 编写的?
    • 运送“所有必要的库”将是(a)从每个依赖项构建轮子并运送它们,或者(b)如果最终用户不想安装 python,则执行“a”和随可移植的 python 发行版一起发布。我通常还会为没有经验的用户添加一些“install.bat”。
    猜你喜欢
    • 2011-06-15
    • 2016-08-24
    • 1970-01-01
    • 2017-07-18
    • 2019-12-04
    • 2022-08-16
    • 1970-01-01
    • 2011-08-04
    • 2016-03-24
    相关资源
    最近更新 更多