如何冻结当地不能满足的需求?

2024-09-29 02:18:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个Python应用程序来部署在Heroku上。根据Heroku's guide,我需要在Pip requirements.txt文件中列出包需求。指南指导我在本地安装包,然后运行pip freeze > requirements.txt来编写冻结的需求文件。在

然而,一个软件包都不能在本地安装。它与我的操作系统不兼容。在

那么,我如何编写一个requirements.txt,包括这个适合Heroku的包呢?在

我能想到的唯一方法是手工编写它,但这将是一种乏味的方法,因为所讨论的包有许多自身的依赖性。此外,这也违背了包管理器的观点。在


在将Ruby应用程序部署到Heroku时,Bundler使这一点变得简单。在我的档案里

gem "pg", :group => :production
gem "sqlite3", :group => :development

命令bundle install然后写入一个冻结版本列表Gemfile.lock(类似于requirements.txt)。它不安装列在'production'组下的包,但是它仍然冻结了一个版本化包的一致列表。在

示例:Gemfile和{a3}


Tags: pip文件方法版本txt应用程序列表heroku
2条回答

这是不可能的。问题报告给pip https://github.com/pypa/pip/issues/747

您可以有多个文件,并将它们称为不同的东西,但是Heroku希望要求.txt. 例如,对于dev,您可以维护一个dev_要求.txt在

您可以在本地运行:

$ pip freeze > dev_requirements.txt

等等,以及

^{pr2}$

Heroku将运行:

$ pip install -r requirements.txt

相关问题 更多 >