PipEnv:如何处理本地安装的 .whl 包
PipEnv: How to handle locally installed .whl packages
我正在使用 PipEnv 设置一个项目,我需要从预编译的二进制文件安装一些包。在之前的项目中,我只是将 pipenv 文件从某个本地文件夹安装到我的环境中,但这似乎会导致锁定文件出现问题,如果其他人尝试从存储库安装,因为 pipfile 会跟踪本地路径,因此会引发错误。这方面的最佳做法是什么?我应该创建一个包存储库作为项目的一部分并从中安装吗?
您应该设置私有 PyPI 索引服务器,并且 configure Pipenv to use that server。
设置私人 PyPI 服务器对于像 pypiserver
:
这样的项目来说是微不足道的
$ mkdir private_pypi && cd private_pypi
$ pipenv install # create pipenv files
$ pipenv install pypiserver
$ mkdir packages
$ pipenv run pypi-server -p 8080 ./packages &
并将您的轮子放入 packages
目录的 projectname
子目录,或者使用 twine
将您的包发布到服务器。
然后在您的项目 Pipfile
中添加一个 [[source]]
部分以指向服务器(要使用的 url 以 /simple
结尾,因此 http://hostname:8080/simple
):
[[source]]
url = "http://hostname:8080/simple"
verify_ssl = false
name = "some_logical_name"
您可以使用默认的 name = "pypi"
部分作为指南。
在 [packages]
部分中,指定用于这些私有轮子的索引:
[packages]
wheel1 = {version="*", index="some_logical_name"}
wheel2 = {version="0.41.1", index="some_logical_name"}
some_public_project = "*"
同样,您可以明确命名任何已命名的索引,包括 index="pypi"
。不添加 index="..."
限制让 Pipenv
搜索所有索引以寻找可能的分布。
对于在索引之外发布的二元轮(例如those built by Christoph Gohlke),您可以考虑只安装完整轮URL:
pipenv install https://download.lfd.uci.edu/pythonlibs/l8ulg3xw/aiohttp-3.3.2-cp36-cp36m-win_amd64.whl
这确实迫使每个人都在特定平台上使用您的 Pipfile。
我正在使用 PipEnv 设置一个项目,我需要从预编译的二进制文件安装一些包。在之前的项目中,我只是将 pipenv 文件从某个本地文件夹安装到我的环境中,但这似乎会导致锁定文件出现问题,如果其他人尝试从存储库安装,因为 pipfile 会跟踪本地路径,因此会引发错误。这方面的最佳做法是什么?我应该创建一个包存储库作为项目的一部分并从中安装吗?
您应该设置私有 PyPI 索引服务器,并且 configure Pipenv to use that server。
设置私人 PyPI 服务器对于像 pypiserver
:
$ mkdir private_pypi && cd private_pypi
$ pipenv install # create pipenv files
$ pipenv install pypiserver
$ mkdir packages
$ pipenv run pypi-server -p 8080 ./packages &
并将您的轮子放入 packages
目录的 projectname
子目录,或者使用 twine
将您的包发布到服务器。
然后在您的项目 Pipfile
中添加一个 [[source]]
部分以指向服务器(要使用的 url 以 /simple
结尾,因此 http://hostname:8080/simple
):
[[source]]
url = "http://hostname:8080/simple"
verify_ssl = false
name = "some_logical_name"
您可以使用默认的 name = "pypi"
部分作为指南。
在 [packages]
部分中,指定用于这些私有轮子的索引:
[packages]
wheel1 = {version="*", index="some_logical_name"}
wheel2 = {version="0.41.1", index="some_logical_name"}
some_public_project = "*"
同样,您可以明确命名任何已命名的索引,包括 index="pypi"
。不添加 index="..."
限制让 Pipenv
搜索所有索引以寻找可能的分布。
对于在索引之外发布的二元轮(例如those built by Christoph Gohlke),您可以考虑只安装完整轮URL:
pipenv install https://download.lfd.uci.edu/pythonlibs/l8ulg3xw/aiohttp-3.3.2-cp36-cp36m-win_amd64.whl
这确实迫使每个人都在特定平台上使用您的 Pipfile。