如何从本地 python 包索引安装包?



https://www.python.org/dev/peps/pep-0503 https://pip.pypa.io/en/stable/reference/pip_wheel/#cmdoption-i 暗示能够从本地目录安装python包,但目前还不清楚这在实践中是什么样子的。

我是否在本地目录中使用相同的索引.html文件?对于本地目录,--extra-index-url 的参数是什么样的?

如果你有一个要按 pip 搜索的发行版目录,你可以简单地包含该目录的路径:

pip install --extra-index-url=file:///path/to/wheelhouse somepackage

/path/to/wheelhouse的结构应像简单的存储库一样,请参阅PEP 503 – 简单存储库 API。没有必要运行网络服务器,从文件系统提供服务是可以的。发布的本地目录(例如.tar.gz.whl文件(可以通过运行piprepo build /path/to/wheelhouse转换为正确的存储库结构。

如果您根本不希望搜索远程 PyPI,则可以使用--index-url而不是--extra-index-url。 请注意,也可以在requirements.txt文件的顶部添加--extra-index-url和/或--index-url

使用pip,您还可以直接从本地文件安装发行版。 例如,要安装 copyingmock 发行版:

$ curl https://pypi.python.org/packages/d9/26/5ae8945356634c87cdf099bd7cee57799df46798af90ae5ccb03961c6359/copyingmock-0.1-py2.py3-none-any.whl > copyingmock-0.1-py2.py3-none-any.whl
$ pip install ./copyingmock-0.1-py2.py3-none-any.whl

我已经展示了一个二进制发行版的示例,但同样适用于源代码发行版 (.tar.gz(。

假设您要从本地安装2个软件包:abc-xyzfoo,并且您有相应的软件包文件abc-xzy-1.2.3.tar.gzfoo-1.0.0.tar.gz

我们会将您的本地 pypi 目录放在/my_local_pypi/simple

您的目录结构将如下所示:

/my_local_pypi/simple
index.html
- abc-xyz/
index.html     
abc-xyz-1.2.3.tar.gz  
- foo/
index.html
foo-1.0.0.tar.gz

index.html需要为每个包<a href></a>定位条目,因此应如下所示:

$ cat /my_local_pypi/simple/index.html
<!DOCTYPE html><html><body>
<a href="abc-xyz">abc-xyz></a></br>
<a href="foo">foo</a></br>
</body></html>

然后,每个$package/index.html都需要一个指向实际包文件的<a href></a>锚点,因此它们应如下所示:

$ cat /my_local_pypi/simple/abc-xyz/index.html
<!DOCTYPE html><html><body>
<a href="abc-xyz-1.2.3.tar.gz">abc-xyz-1.2.3.tar.gz</a></br>
</body></html>
$ cat /my_local_pypi/simple/foo/index.html
<!DOCTYPE html><html><body>
<a href="foo-1.0.0.tar.gz">foo-1.0.0.tar.gz</a></br>
</body></html>

然后在您的requirements.txt中,您可以执行以下操作:

$ cat requirements.txt
--extra-index-url file:///my_local_pypi/simple/
abc-xyz==1.2.3
foo==1.0.0

然后你应该很高兴:pip install -r requirements.txt

另请参阅 piprepo 项目,它在生成所需的本地目录结构方面做得很好。

您不必使用任何index.html文件。

运行以下命令就足够了:

pip install "path/to/file.whl"

这将从本地轮文件安装。

相关内容

  • 没有找到相关文章

最新更新