我正在尝试使用 Heroku 部署一个相当基本的应用程序,并且之前已经成功,但由于某种原因,当我现在尝试时遇到导入错误。 Foreman start 工作没有问题,但是当我尝试启动应用程序时,似乎发生了一些破坏导入的事情。这是我收到的日志消息:
heroku[web.1]: Starting process with command `python manage.py runserver -p 40309`
app[web.1]: Traceback (most recent call last):
app[web.1]: File "manage.py", line 6, in <module>
app[web.1]: ImportError: No module named SpoolEngine
app[web.1]: from SpoolEngine import app
heroku[web.1]: Process exited with status 1
heroku[web.1]: State changed from starting to crashed
heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=tranquil-taiga-1563.herokuapp.com fwd="66.31.20.171" dyno= connect= service= status=503 bytes=
heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=tranquil-taiga-1563.herokuapp.com fwd="66.31.20.171" dyno= connect= service= status=503 bytes=
这是我的 Procfile:
web: python manage.py runserver -p $PORT
这是manage.py
我用来启动一切的文件:
import os, sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from flask.ext.script import Manager, Server
from SpoolEngine import app
manager = Manager(app)
manager.add_command("runserver", Server(
use_debugger=True,
use_reloader=True,
host='0.0.0.0')
)
if __name__ == "__main__":
manager.run()
如果我所做的事情很愚蠢,我很抱歉,但我对这个领域还很陌生,并且非常感谢一些指示。
在这里猜测:你的代码显示
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
因此,在本地,您在manage.py 的父目录中安装了一些软件包,但在Heroku 中并非如此。
只是为了调试,我还要添加
import sys
print sys.path
到manage.py的最顶部,并比较输出。您可以在本地运行的输出中查找您的模块,然后heroku run bash
并查看远程运行打印的目录中的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)