如何在我的heroku应用程序上安装软件包?

时间:2013-03-11 00:04:46

标签: python heroku virtualenv pyramid uuid

我有一个使用shortuuid(https://pypi.python.org/pypi/shortuuid/0.1)的应用程序,当我使用runapp.py运行它时,本地工作正常:

import os

from paste.deploy import loadapp
from waitress import serve

if __name__ == "__main__":
    port = int(os.environ.get("PORT", 5000))
    app = loadapp('config:production.ini', relative_to='.')

    serve(app, host='0.0.0.0', port=port)

但是,当我尝试使用../bin/pserve development.ini运行它时,它不起作用。我收到错误:导入错误:没有名为shortuuid的模块。当我把它推到heroku时,我得到了同样的错误。我已经在运行我的应用程序的虚拟环境中安装了shortuuid,并且只能断定在heroku上没有这个安装是什么导致了问题。

我已经尝试用production.ini代码替换development.ini代码但它仍然不起作用所以我假设它的东西(也许是runapp.py上的import os行?)

2 个答案:

答案 0 :(得分:3)

我通常创建一个包含软件包的requirements.txt文件:

Flask==0.9
Jinja2==2.6
Werkzeug==0.8.3
distribute==0.6.27
wsgiref==0.1.2

Flask-Cache==0.10.0

gunicorn==0.17.2

您可以使用pip创建该文件:

$ pip freeze > requirements.txt

答案 1 :(得分:1)

requirements.txt放在git仓库的根目录中,并附上所需的依赖项(以pip / easy-install格式指定)。

取自Heroku website

的示例
Flask==0.8
Jinja2==2.6
Werkzeug==0.8.3
certifi==0.0.8
chardet==1.0.1
distribute==0.6.24
gunicorn==0.14.2
requests==0.11.1