Flask糟糕的翻译

时间:2015-06-12 10:43:54

标签: python bash flask shebang

遵循本教程:http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iv-database我已经到达了我应该创建第一个数据库并迁移它的表的部分。

在我的xyzTest应用的根目录中使用db_create.py,其中包含以下内容:

#!flask/bin/python
from migrate.versioning import api
from config import SQLALCHEMY_DATABASE_URI
from config import SQLALCHEMY_MIGRATE_REPO
from app import db
import os.path
db.create_all()
if not os.path.exists(SQLALCHEMY_MIGRATE_REPO):
    api.create(SQLALCHEMY_MIGRATE_REPO, 'database repository')
    api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
else:
    api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO,
                        api.version(SQLALCHEMY_MIGRATE_REPO))

无论我是否使用virtualenv active(virtualenv flask; source flask/bin/activate)执行脚本,脚本的执行结果都是相同的。

./db_create.py返回:

  

-bash:./ db_create.py:flask / bin / python ^ M:错误的解释器:没有这样的文件或目录

python db_create.py返回:

  

追踪(最近的呼叫最后):
    文件“db_create.py”,第2行,in       来自migrate.versioning import api   ImportError:没有名为'migrate'的模块

然而,安装了flask-sqlalchemysqlalchemy-migrate以及烧瓶框架本身。

ppip list

argparse (1.2.1)
Babel (1.3)
blinker (1.3)
coverage (3.7.1)
decorator (3.4.2)
Flask (0.10.1)
Flask-Babel (0.9)
Flask-Login (0.2.11)
Flask-Mail (0.9.1)
Flask-OpenID (1.2.4)
Flask-SQLAlchemy (2.0)
Flask-WhooshAlchemy (0.56)
Flask-WTF (0.11)
flipflop (1.0)
guess-language (0.2)
itsdangerous (0.24)
Jinja2 (2.7.3)
MarkupSafe (0.23)
pbr (0.11.0)
pip (1.5.6)
python-openid (2.2.5)
pytz (2015.4)
setuptools (5.5.1)
six (1.9.0)
speaklater (1.3)
SQLAlchemy (0.9.9)
sqlalchemy-migrate (0.9.6)
sqlparse (0.1.15)
Tempita (0.5.2)
Werkzeug (0.10.4)
Whoosh (2.7.0)
wsgiref (0.1.2)
WTForms (2.0.2)

2 个答案:

答案 0 :(得分:3)

搜索以查找^M的含义,我遇到了这篇文章Unix script appends ^M at end of each line

我已应用与所选答案相同的解决方案dos2unix db_create.py并修复了它。

之所以发生这种情况,是因为我正在从一台Windows机器写入一个文件夹linux文件夹。我执行了以下命令:find ./ -name "*.py" -not -path "./flask/*" -exec dos2unix {} \;以确保我不会遇到与其他任何文件相同的问题。

答案 1 :(得分:0)

sqlalchemy-migrate版本可能存在问题。本教程使用sqlalchemy-migrate v.07.2(请参阅您在问题中发布的教程链接的评论部分)。本教程中sqlalchemy的版本也较旧(来自作者“你应该使用sqlalchemy 0.7.9与sqlalchemy-migrate。该项目未更新为使用sqlalchemy 0.8。”)

相关问题