python - 在 Heroku 应用程序之间共享 Python 代码

标签 python git heroku

我有 2 个 Heroku 应用程序,包括 Pyhon 和它们之间共享的一些 python 模块(即:它们在两个应用程序中是相同的)。 设置我的 git/requirements.txt 以实现以下目标的最佳方法是什么?

  1. 共享代码是版本化的(也就是说:它也位于 Git 中,我不在乎在哪里——一个项目?另一个项目?)
  2. 在开发过程中,我的磁盘上有一份该共享代码的副本
  3. 在开发过程中,我可以更改共享代码的单个副本并将更改反射(reflect)在两个应用程序中,理想情况下除了更改磁盘上的文件外什么都不做。
  4. 当推送到 Heroku 时,我所做的只是简单的“推送”

我的直觉告诉我,我需要将共享代码作为 Python 包存储在磁盘上,并在开发过程中将其添加到每个应用程序的 PYTHONPATH 中。 此外,我会将它(如何?使用私有(private)服务器?来自 s3?作为供应商目录?)添加到每个应用程序的 requriments.txt。

...但我不太清楚。

有什么想法吗?

最佳答案

您可以使用 pip 需求文件来做到这一点。您可能有一个用于本地开发,一个用于您的应用程序。请查看the requirements file format了解更多信息。

本地开发需求文件

file:///path/to/your/lib/project#egg=MyProject

这应该允许您从您的应用程序进行只读访问,这对于共享代码(例如项目的 git clone)很有用。请注意,它将指向 HEAD。这应该符合要求 1、2、3。

项目布局可以查看setuptools documentation ;例如创建一个 setup.py 和一个包含您的代码的包。您可以查看 requests 库,它是 a good example .

应用需求文件

git://git.myproject.org/MyProject.git#egg=MyProject

这应该会获取您推送到存储库的任何代码。我没有使用 Heroku 的经验,但如果 they support requirements file that should just work .这应该符合要求 1,我希望符合要求 4。

如果你想在 heroku 中使用私有(private) git 仓库,请 refer to heroku documentation (请注意,它是 username:password 基本身份验证和 does not have email address )。如果你不想使用密码,你可以使用 revocable OAuth token .

关于python - 在 Heroku 应用程序之间共享 Python 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14253943/

相关文章:

python - 试图操纵数据,将列表分配给更高列表中的第一项,第二项将是有关该列表的信息

python - python 在 bash 中可以像这样吗?

eclipse - 从 Eclipse 中删除 git 存储库

git - Subgit - 停止属性同步

git - 从忘记 .gitignore 中恢复

node.js - 我可以在 Heroku 上运行 .exe 文件吗?

ruby-on-rails - Heroku Rails 4/Ruby 2.0.0 部署失败,生产数据库不可连接

python - Django通过表预取

python - 如何使用 python 对对象列表进行排序?

ruby-on-rails - 禁用 Rails 中的资源预编译功能