我正在编写一个Python应用程序以在Heroku上部署。根据{{3}},我需要在Pip requirements.txt
文件中列出包要求。该指南指示我在本地安装软件包,然后运行pip freeze > requirements.txt
以编写冻结的需求文件。
但是,我想在Heroku 上部署时使用的其中一个软件包无法在本地安装。它与我的操作系统不兼容。
那么如何编写requirements.txt
包括适合Heroku的这个包呢?
我能想到的唯一方法是手工编写 - 但这会很乏味,因为有问题的包有很多自己的依赖。此外,这违背了包裹经理的观点。
在将Ruby应用程序部署到Heroku时,Bundler使这一切变得简单。在我的Gemfile中,我写了
gem "pg", :group => :production
gem "sqlite3", :group => :development
命令bundle install
然后写入冻结版本列表Gemfile.lock
(类似于requirements.txt
)。它不会安装在' production'下列出的软件包。 group,但它仍然冻结了一致的版本化软件包列表。
答案 0 :(得分:1)
你可以拥有多个文件,并将它们称为不同的东西,但Heroku确实需要一个requirements.txt。例如,对于dev,您可以维护dev_requirements.txt
在本地你可以运行:
$ pip freeze > dev_requirements.txt
等,
$ pip install -r dev_requirements.txt
和Heroku将运行:
$ pip install -r requirements.txt
答案 1 :(得分:0)
这是不可能的。已向pip https://github.com/pypa/pip/issues/747
报告问题