python - 尝试创建 python Web 应用程序时 Vagrant 出现错误

标签 python flask vagrant ansible

我正在研究使用 Vagrant 和 Ansbile ( https://github.com/nickhs/flask_skeleton ) 部署 Flask 应用程序的指南,但不断遇到我不知道如何修复的错误。

我运行以下... $ vagrant up db

...在出现错误之前经过了相当多的步骤,但我找不到任何答案。

这些是已完成的步骤...

[db] 运行配置程序:ansible...

PLAY [dbservers] ************************************************************** 

GATHERING FACTS *************************************************************** 

TASK: [update apt] ************************************************************ 
changed: [192.168.100.20]

TASK: [install base packages] ************************************************* 
changed: [192.168.100.20] => (item=libpq-dev,python-dev,python-setuptools,git,libevent-dev,python-psycopg2)

TASK: [install pip] *********************************************************** 
changed: [192.168.100.20]

TASK: [add env variables] ***************************************************** 
changed: [192.168.100.20]

TASK: [install db server packages] ******************************************** 
changed: [192.168.100.20] => (item=postgresql,postgresql-contrib)

TASK: [update postgres db configuration] ************************************** 
changed: [192.168.100.20]

TASK: [update postgres client configuration] ********************************** 
changed: [192.168.100.20]

TASK: [link /vagrant to /srv/flask_skeleton] ********************************** 
changed: [192.168.100.20]

TASK: [install dependencies] ************************************************** 
changed: [192.168.100.20]

NOTIFIED: [source env variables] ********************************************** 
ok: [192.168.100.20]

NOTIFIED: [restart postgresql] ************************************************ 

PLAY [dbservers] ************************************************************** 
TASK: [create database user] ************************************************** 
TASK: [create database] ******************************************************* 

NOTIFIED: [build database] **************************************************** 
failed: [192.168.100.20] => {"item": "", "rc": 1}
stdout: Traceback (most recent call last):
  File "/srv/flask_skeleton/createdb.py", line 1, in <module>
    from app import db
ImportError: cannot import name db


PLAY RECAP ******************************************************************** 
           to retry, use: --limit @/var/tmp/ansible/vagrant-dbserver.retry

192.168.100.20             : ok=14   changed=12   unreachable=0    failed=1   

有人能指出我正确的方向吗?

最佳答案

查看 app.py 中的行:

app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DATABASE_URL')

if app.config['SQLALCHEMY_DATABASE_URI']:
    db = SQLAlchemy(app)

如果没有定义 DATABASE_URL,则不会创建“db”变量,该变量无法导入到 createdb.py 模块中。你能检查一下你是否确实有 os.environ.get('DATABASE_URL') 的值吗?

关于python - 尝试创建 python Web 应用程序时 Vagrant 出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17842487/

相关文章:

python - SQLite 查询性能、Transpose、Melt 和 Pandas

python - 使用文件系统清理服务器端 session 文件 - Flask-Session

python - 如何使用 FlaskClient 测试分段上传(用于单元测试)

macos - 我怎样才能杀死正在使用端口 8080 的任何进程,以便我可以 Vagrant ?

elasticsearch - 如何在 Vagrant 中安装和运行 elasticsearch?

python - Pandas:如何删除具有重复复合键的行,同时保持缺失值分布在重复项之间?

python - 如何在 Python 中迭代所有单词直到字母表的排列?

python - .py 文件中的西类牙语文本

python - Flask 在 Windows 上运行时无法识别 python-dotenv

postgresql - 当 SSH 进入 Vagrant Virtual Box(Linux Ubuntu 机器)时,从命令行编辑来自 Sublime Text 2 的文件