Pipenv如何只使用site-packages中的包

3
如何使用pipenv安装包,以默认使用site-packages而不是使用PyPi索引。背景是,我在我的site-packages文件夹中有一个公司批准的包列表。
我仍然想使用venv来正确捕获这些依赖项,而不是直接使用site-packages。

你想使用 pipenv 来管理虚拟环境,但只允许它通过符号链接直接从主机的全局 site-packages 文件夹安装软件包,而不是从 PyPi(通过下载)安装吗? - Michael Gecht
1
@mischi,我该怎么做? - bluprince13
我不是很确定。 pipenv 允许您指定一个不同的源 URL,但我不知道如何告诉它仅考虑您本地的 site-packages 文件夹。也许你可以在 GitHub 存储库中询问?维护者 @kenneth-reitz 非常活跃,可能会回答你的问题。如果您得到了答案,可以在这里发布 :) - Michael Gecht
1个回答

5

你在工作中安装了Python,并已经安装了某些软件包。virtualenv创建了一个环境,它具有自己的安装目录,不与其他virtualenv环境共享库(并且可以选择不访问全局安装的库)。根据你的问题,你可能想要在新的virtualenv中共享库。现在默认行为是没有访问全局site-packages。但是如果符合你的使用情况,你可以覆盖默认设置。但是site-packages文件夹不能作为pip的源,但可以与另一个虚拟环境共享 - 但这会导致版本问题重新出现,而virtualenv的存在就是为了解决这一问题

为了保证可重复性,您可以使用pip freeze冻结当前的软件包列表。如果您想在另一个系统上重新创建此Python安装程序,则需要告诉pip在哪里查找(任何受限制的源软件包集,如果不使用PyPI)。如果公司批准的软件包在PyPI上可用-那么只需从默认Python安装中的requirements.txt中构建新环境即可。您甚至可以使用可编辑安装构建Python环境-如果您可以访问任何公司开发的Python软件包的源代码。 pip有许多选项从不同的来源安装软件包。选项7和8让您了解如何从源存档或备用软件包存储库或本地文件系统安装。

pipenv 发明了一个称为 Pipfile 的东西。该文件固定软件包依赖并定义依赖项(如PyPI)的来源。您需要找出如何引用备用来源。[[source]] 条目的顺序可能很重要。

[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[[source]]
url = "http://pypi.home.kennethreitz.org/simple"
verify_ssl = false
name = "home"

[dev-packages]
url = "http://mycompany.package.repo/simple/"
verify_ssl = false
name = "company-approved-packages"

[packages]
requests = "*"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接