Heroku 如何处理 Django 依赖项?
How does Heroku handle Django dependencies?
我开始着手我的第一个 Django/Heroku 项目 – 我正在开发一个已经部分编码的朋友的网络应用程序。它内置于 Django 1.6 中。没有 virtualenv
,当我克隆它并尝试在 Django 1.8 中 运行 它时,它崩溃并烧毁。该应用程序本身目前在线且正常运行,当我 运行 在 Django 1.6 中本地应用程序时,没有问题。 Heroku 如何处理这样的依赖关系?它是否通过读取 requirements.txt
?
在其服务器上安装依赖项
当您的 Web 实例启动时,可以通过 pip requirements.txt file. You may also specify in your Procfile 脚本将依赖项安装到 运行。我个人有一个从 Procfile 引用的 运行 脚本,运行 是我的 Pyramid(类似于 DJango 的网络框架)setup.py 文件用于部署,也可以安装依赖项。
Heroku 部署中包含三个配置文件:
- runtime.txt:在这里您可以指定您的python运行时间。它是可选的,我相信默认是 2.7.9.
requirements.txt:此文件包含应安装到您的 python 环境中的 python 依赖项。在部署 Heroku 期间将 运行:
pip install -r requirements.txt
这将安装文件中包含的所有依赖项。如果你本地环境安装了pip(python3.4自带,其他运行次可能需要单独安装),应该可以生成这个内容通过 运行ning:
为您的本地环境创建文件
pip freeze
Procfile:在这里你应该定义你的 Heroku dynos 运行 的命令。通常,运行ning 您的 Django 项目的命令。
Heroku 仅使用您的 requirements.txt 文件中的库。无论指定什么版本的 Django,它都会安装什么。
Heroku 会安装您在 requirements.txt
文件中指定的任何版本的 python 软件包。例如,如果它包含:
requests
Django
它将安装这些包的最新版本,因为没有指定版本。相反,如果你 want/need Heroku 要安装版本 X.Y 的包,你需要在需求文件中指定,如:
requests==2.6.2
Django==1.8
这将使 heroku 在版本 2.6.2 和 1.8 上分别安装 requests
和 Django
。
更新:作为额外说明,请注意这不是 Heroku 特有的。 Heroku 简单地 运行s pip install -r requirements.txt
结果与在本地 运行 相同。
我开始着手我的第一个 Django/Heroku 项目 – 我正在开发一个已经部分编码的朋友的网络应用程序。它内置于 Django 1.6 中。没有 virtualenv
,当我克隆它并尝试在 Django 1.8 中 运行 它时,它崩溃并烧毁。该应用程序本身目前在线且正常运行,当我 运行 在 Django 1.6 中本地应用程序时,没有问题。 Heroku 如何处理这样的依赖关系?它是否通过读取 requirements.txt
?
当您的 Web 实例启动时,可以通过 pip requirements.txt file. You may also specify in your Procfile 脚本将依赖项安装到 运行。我个人有一个从 Procfile 引用的 运行 脚本,运行 是我的 Pyramid(类似于 DJango 的网络框架)setup.py 文件用于部署,也可以安装依赖项。
Heroku 部署中包含三个配置文件:
- runtime.txt:在这里您可以指定您的python运行时间。它是可选的,我相信默认是 2.7.9.
requirements.txt:此文件包含应安装到您的 python 环境中的 python 依赖项。在部署 Heroku 期间将 运行:
pip install -r requirements.txt
这将安装文件中包含的所有依赖项。如果你本地环境安装了pip(python3.4自带,其他运行次可能需要单独安装),应该可以生成这个内容通过 运行ning:
为您的本地环境创建文件pip freeze
Procfile:在这里你应该定义你的 Heroku dynos 运行 的命令。通常,运行ning 您的 Django 项目的命令。
Heroku 仅使用您的 requirements.txt 文件中的库。无论指定什么版本的 Django,它都会安装什么。
Heroku 会安装您在 requirements.txt
文件中指定的任何版本的 python 软件包。例如,如果它包含:
requests
Django
它将安装这些包的最新版本,因为没有指定版本。相反,如果你 want/need Heroku 要安装版本 X.Y 的包,你需要在需求文件中指定,如:
requests==2.6.2
Django==1.8
这将使 heroku 在版本 2.6.2 和 1.8 上分别安装 requests
和 Django
。
更新:作为额外说明,请注意这不是 Heroku 特有的。 Heroku 简单地 运行s pip install -r requirements.txt
结果与在本地 运行 相同。