您应该设置一个私有 PyPI 索引服务器,并且配置 Pipenv 以使用该服务器 https://pipenv.kennethreitz.org/en/latest/advanced/#specifying-package-indexes.
对于像这样的项目来说,设置一个私有 PyPI 服务器很简单pypiserver https://pypi.org/project/pypiserver/:
$ mkdir private_pypi && cd private_pypi
$ pipenv install # create pipenv files
$ pipenv install pypiserver
$ mkdir packages
$ pipenv run pypi-server -p 8080 ./packages &
并将你的轮子放入他们的projectname
的子目录packages
目录,或使用twine
将您的包发布到服务器。
然后添加一个[[source]]
您的项目中的部分Pipfile
指向服务器(要使用的 url 结尾为/simple
, so http://hostname:8080/simple
):
[[source]]
url = "http://hostname:8080/simple"
verify_ssl = false
name = "some_logical_name"
您可以使用默认的name = "pypi"
部分作为指导。
In the [packages]
部分,指定用于这些私有轮子的索引:
[packages]
wheel1 = {version="*", index="some_logical_name"}
wheel2 = {version="0.41.1", index="some_logical_name"}
some_public_project = "*"
同样,您可以显式命名任何命名索引,包括index="pypi"
。不添加一个index="..."
限制让Pipenv
搜索所有索引以查找可能的分布。
对于在索引之外发布的二进制轮(例如那些由克里斯托夫·戈尔克(Christoph Gohlke)建造的 https://www.lfd.uci.edu/~gohlke/pythonlibs/),您可以考虑只安装完整的轮子 URL:
pipenv install https://download.lfd.uci.edu/pythonlibs/l8ulg3xw/aiohttp-3.3.2-cp36-cp36m-win_amd64.whl
这确实迫使每个人使用你的 Pipfile 到特定的平台。