我正在编写一个 Python 应用程序来部署在 Heroku 上。根据Heroku 的指南,我需要在 Piprequirements.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
)。它不会安装“生产”组下列出的软件包,但仍会冻结一致的版本化软件包列表。