pip 从具有外部依赖性的本地安装私有包
pip install private package from local with external dependency
我正在使用 pip 在虚拟环境中安装一些私有包。
使用 python 版本 3.7.3 和 pip 版本 18.1
我已经将那个私有包的 .whl 文件复制到本地目录。
现在该包具有外部依赖项和另一个私有包以及 public 个包。
Public 包我指的是可从 public 存储库(pypi 或 piwheels)获得的包。
我试过使用
pip install my-private-package -f /path/to/private/package/directory
现在,失败并显示以下消息:
Could not install packages due to an EnvironmentError: 404 Client Error: Not Found for url: https://pypi.org/simple/my_private_package
然后我尝试了以下两个命令(预计会失败)
pip install -f /path/to/private/package/directory --no-index
和
pip install --no-index --find-links=/path/to/private/package/directory private-package --extra-index-url https://pypi.org/simple --extra-index-url https://www.piwheels.org/simple
那些如预期的那样失败并显示相同的错误消息
Could not find a version that satisfies the requirement public-package==x.x.x (from private-package->another-private-package) (from versions: )
我也试过了
pip install /path/to/private/package/directory/private_package_x_x_x.whl
这也失败了,并显示以下错误消息。这意味着在 public 存储库中找不到另一个私有包。这很明显。
Could not install packages due to an EnvironmentError: 404 Client Error: Not Found for url: https://pypi.org/simple/another-private-package/
最后一次尝试:
pip install /path/to/private/package/directory/private_package_x_x_x.whl --find-links=/path/to/private/package/directory
很遗憾,这次也没有运气。
我可以想到几个解决方法:
- 下载所有依赖并保存在本地目录(/path/to/private/package/directory)
- 创建私人服务器并通过 http 提供索引信息
现在,我对选项 1 不满意,因为每次添加新的 public 依赖项时我都必须下载。选项 2 可能是一个不错的选择 - 如果找不到其他选项,我可能会选择它。
任何输入建议将不胜感激。
更新:
OS: debian 10 python 版本 3.7.3 和 pip 版本 18.1
This works on Windows with python 3.9 and PIP 21.1.2 , i.e pip install
my-private-package -f C:\path\to\private\package\directory
感谢指导@Matteo Zanoni。
问题是版本。当我将 pip 从 18.1 升级到 21.3.1
时,--find-link 起作用
我正在使用 pip 在虚拟环境中安装一些私有包。 使用 python 版本 3.7.3 和 pip 版本 18.1
我已经将那个私有包的 .whl 文件复制到本地目录。 现在该包具有外部依赖项和另一个私有包以及 public 个包。
Public 包我指的是可从 public 存储库(pypi 或 piwheels)获得的包。
我试过使用
pip install my-private-package -f /path/to/private/package/directory
现在,失败并显示以下消息:
Could not install packages due to an EnvironmentError: 404 Client Error: Not Found for url: https://pypi.org/simple/my_private_package
然后我尝试了以下两个命令(预计会失败)
pip install -f /path/to/private/package/directory --no-index
和
pip install --no-index --find-links=/path/to/private/package/directory private-package --extra-index-url https://pypi.org/simple --extra-index-url https://www.piwheels.org/simple
那些如预期的那样失败并显示相同的错误消息
Could not find a version that satisfies the requirement public-package==x.x.x (from private-package->another-private-package) (from versions: )
我也试过了
pip install /path/to/private/package/directory/private_package_x_x_x.whl
这也失败了,并显示以下错误消息。这意味着在 public 存储库中找不到另一个私有包。这很明显。
Could not install packages due to an EnvironmentError: 404 Client Error: Not Found for url: https://pypi.org/simple/another-private-package/
最后一次尝试:
pip install /path/to/private/package/directory/private_package_x_x_x.whl --find-links=/path/to/private/package/directory
很遗憾,这次也没有运气。
我可以想到几个解决方法:
- 下载所有依赖并保存在本地目录(/path/to/private/package/directory)
- 创建私人服务器并通过 http 提供索引信息
现在,我对选项 1 不满意,因为每次添加新的 public 依赖项时我都必须下载。选项 2 可能是一个不错的选择 - 如果找不到其他选项,我可能会选择它。
任何输入建议将不胜感激。
更新:
OS: debian 10 python 版本 3.7.3 和 pip 版本 18.1
This works on Windows with python 3.9 and PIP 21.1.2 , i.e pip install my-private-package -f C:\path\to\private\package\directory
感谢指导@Matteo Zanoni。 问题是版本。当我将 pip 从 18.1 升级到 21.3.1
时,--find-link 起作用