我正在編寫一個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
)。它不會安裝「生產」組下列出的軟件包,但它仍凍結了一致的版本化軟件包列表。
我認爲這不會太困難(並且從長遠來看,它會產生很多意義)來獲得Ubuntu或Debian VBox映像運行並安裝所需的所有軟件包虛擬env然後生成您的requirements.txt。 –