나는 Flask + sqlalchemy (mysql)을 실행중인 Linode 인스턴스에서 python setup.py
작은 스크립트를 실행하려고합니다.Virtualenv에서 가져 오기 오류
Traceback (most recent call last):
File "setup.py", line 21, in <module>
init_db()
File "setup.py", line 9, in init_db
db.drop_all()
File "/home/captain/public/daaru/v1/local/lib/python2.7/site-packages/flask_sqlalchemy.py", line 830, in drop_all
self._execute_for_all_tables(app, bind, 'drop_all')
File "/home/captain/public/daaru/v1/local/lib/python2.7/site-packages/flask_sqlalchemy.py", line 814, in _execute_for_all_tables
op(bind=self.get_engine(app, bind), tables=tables)
File "/home/captain/public/daaru/v1/local/lib/python2.7/site-packages/flask_sqlalchemy.py", line 763, in get_engine
return connector.get_engine()
File "/home/captain/public/daaru/v1/local/lib/python2.7/site-packages/flask_sqlalchemy.py", line 443, in get_engine
self._engine = rv = sqlalchemy.create_engine(info, **options)
File "/home/captain/public/daaru/v1/local/lib/python2.7/site-packages/sqlalchemy/engine/__init__.py", line 338, in create_engine
return strategy.create(*args, **kwargs)
File "/home/captain/public/daaru/v1/local/lib/python2.7/site-packages/sqlalchemy/engine/strategies.py", line 64, in create
dbapi = dialect_cls.dbapi(**dbapi_args)
File "/home/captain/public/daaru/v1/local/lib/python2.7/site-packages/sqlalchemy/connectors/mysqldb.py", line 52, in dbapi
return __import__('MySQLdb')
ImportError: No module named MySQLdb
재미있는 부분은 내가 서버에 로그인 할 때, (v1
이름) 가상 ENV를 활성화하고 ipython 모든 일에 init_db
를 실행하는 것입니다 -
#filename - setup.py
from daaru import db
def init_db():
db.drop_all()
db.create_all()
init_db()
이
내가지고있어 오류입니다 예상대로 작동합니다. 그러나 스크립트로 실행하면MySQLdb
모듈에 대해
ImportError
이 표시됩니다. MySQLdb에는
apt-get install python-mysqldb
을 사용하는 시스템 전체 설치가 있습니다.이 패키지는 pip를 통해 사용할 수 없으므로.
내가 뭘 잘못하고 있니? 서버에 pip freeze
실행
나에게 보여줍니다이 :
Flask==0.9
Flask-SQLAlchemy==0.16
Jinja2==2.6
SQLAlchemy==0.7.9
Werkzeug==0.8.3
argparse==1.2.1
wsgiref==0.1.2
가 mysqldb 패키지가 venv에서 발견되지 않기 때문에 나오는 오류? 그 패키지의 시스템 전체 설치가 사용되는 이유는 무엇입니까?
더 나은 해결책을 제공 할 수 있다고 생각되면 사람들은 여전히 답을 추가 할 수 있습니다. 2 일 지연은 그들에게 당신의 질문을 볼 기회를주는 것입니다. :-) –