如何使用pipenv安装包,以默认使用site-packages而不是使用PyPi索引。背景是,我在我的site-packages文件夹中有一个公司批准的包列表。
我仍然想使用venv来正确捕获这些依赖项,而不是直接使用site-packages。
我仍然想使用venv来正确捕获这些依赖项,而不是直接使用site-packages。
你在工作中安装了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 = "*"
pipenv
来管理虚拟环境,但只允许它通过符号链接直接从主机的全局site-packages
文件夹安装软件包,而不是从 PyPi(通过下载)安装吗? - Michael Gechtpipenv
允许您指定一个不同的源 URL,但我不知道如何告诉它仅考虑您本地的site-packages
文件夹。也许你可以在 GitHub 存储库中询问?维护者 @kenneth-reitz 非常活跃,可能会回答你的问题。如果您得到了答案,可以在这里发布 :) - Michael Gecht