如何在推送到 PyPi 之前测试 PyPi 安装是不是有效? (Python)

Posted

技术标签:

【中文标题】如何在推送到 PyPi 之前测试 PyPi 安装是不是有效? (Python)【英文标题】:How to test that PyPi install will work before pushing to PyPi? (Python)如何在推送到 PyPi 之前测试 PyPi 安装是否有效? (Python) 【发布时间】:2017-04-26 21:26:53 【问题描述】:

我在弄清楚如何将我的 Python 包处理为 PyPi 时遇到了一些问题,因此我可以轻松地将它与其他项目的其他依赖项一起安装(即,使用需求条目或简单的“pip install xyz”)-此处列出了其中之一Creating PyPi package - Could not find a version that satisfies the requirement iso8601。这使我陷入了另一个兔子洞,这又引出了另一个问题:

我如何测试以确保我的 pip install 命令在将我的包发布到 PyPi 之前可以正常工作?

【问题讨论】:

【参考方案1】:

如果您只需要测试 pip install 是否在构建的包中工作,您可以创建它,然后使用 pip 从本地文件系统安装它。

python setup.py sdist
pip install dist/mypackage-1.0.tar.gz

如果您已经在运行python setup.py install,请确保您运行:

pip uninstall mypackage

首先卸载现有的包。您可能会遇到在本地混合 python setup.py installpip 的奇怪情况,因此请多次运行 pip uninstall 直到说不再有要删除的包以确保安全。

【讨论】:

很好,很有帮助。谢谢!似乎认为使用 pip install 直接从产品资源安装,是否有 pip install -i testpypi.python.org/pypi 的等价物?大多数情况下,我只是试图检测和修复两个地方都不存在的依赖关系。 这两个地方是什么意思?我打算提到 testpypi,但不确定它是只使用它还是退回到真正的 PyPi。你说的是这个问题吗? 是的,我认为我们在同一页上。基本上,当测试与 prod PyPi 包装的版本控制不同时,我正在使用的一些包不会退回到真正的 PyPi,这使得暂存区域无法进行测试。我可以忽略它并使用 prod env,因为这似乎已损坏,但似乎是错误的。 除了版本不同时,一些包直接在测试环境中不存在,但在真正的 PyPi 上存在……这一点都不令人沮丧……跨度> 你有没有考虑过使用doc.devpi.net/latest/index.html

以上是关于如何在推送到 PyPi 之前测试 PyPi 安装是不是有效? (Python)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 pip 和 PyPI 安装 Python 模块单个文件?

如何使用 git repos 作为我的 PyPi 包的依赖项?

python 推送到github并在PyPI上发布

如何从经过身份验证的私有 Artifactory PyPI 存储库中提取 Python 包?

如何使用 anaconda conda 命令安装 PyPi 包

如何使用 setup.py 安装托管在私有 PyPI 中的包?