【发布时间】:2012-12-14 07:20:53
【问题描述】:
我正在编写一个 Python 应用程序来部署在 Heroku 上。根据 Heroku's guide,我需要在 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)。它不会安装“生产”组下列出的软件包,但仍会冻结一致的版本化软件包列表。
示例:Gemfile 和 Gemfile.lock
【问题讨论】:
-
我认为运行 Ubuntu 或 Debian VBox 映像并在然后虚拟环境生成你的 requirements.txt。