Python virtualenv中的SQLAlchemy错误

Python virtualenv中的SQLAlchemy错误,python,sqlalchemy,python-2.7,virtualenv,Python,Sqlalchemy,Python 2.7,Virtualenv,我正在尝试在没有root权限的计算机上运行python脚本。为此,我使用Python2.7设置了一个virtualenv,然后添加了两个需要并行Python和SQLAlchemy的包。运行脚本时,出现以下错误: (virtPython)thaddeus:recipes ab940$ python2.7 matchIngsParallel.py Starting pp with 8 workers Reading ingredients into dictionary Traceback (mo

我正在尝试在没有root权限的计算机上运行python脚本。为此,我使用Python2.7设置了一个
virtualenv
,然后添加了两个需要并行Python和SQLAlchemy的包。运行脚本时,出现以下错误:

(virtPython)thaddeus:recipes ab940$ python2.7 matchIngsParallel.py 
Starting pp with 8 workers
Reading ingredients into dictionary
Traceback (most recent call last):
  File "matchIngsParallel.py", line 65, in <module>
    for synonym, parentIng in session.query(IngSyn.synonym, IngSyn.parentIng): 
  File "build/bdist.macosx-10.6-intel/egg/sqlalchemy/orm/query.py", line 2227, in     __iter__
  File "build/bdist.macosx-10.6-intel/egg/sqlalchemy/orm/query.py", line 2242, in     _execute_and_instances
  File "build/bdist.macosx-10.6-intel/egg/sqlalchemy/engine/base.py", line 1449, in execute
  File "build/bdist.macosx-10.6-intel/egg/sqlalchemy/engine/base.py", line 1584, in _execute_clauseelement
  File "build/bdist.macosx-10.6-intel/egg/sqlalchemy/engine/base.py", line 1698, in _execute_context
  File "build/bdist.macosx-10.6-intel/egg/sqlalchemy/engine/base.py", line 1691, in _execute_context
  File "build/bdist.macosx-10.6-intel/egg/sqlalchemy/engine/default.py", line 331, in do_execute
sqlalchemy.exc.OperationalError: (OperationalError) no such table: ingSyns u'SELECT     "ingSyns".synonym AS "ingSyns_synonym", "ingSyns"."parentIng" AS "ingSyns_parentIng" \nFROM     "ingSyns"' ()
(此代码缩短,但包括错误发生的位置)

assignDB
如下所示:

from sqlalchemy import Column, Integer, String, ForeignKey, create_engine, Table
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, backref, sessionmaker
from sqlalchemy.dialects.sqlite import DATETIME, REAL

engine = create_engine('sqlite:///recDB.db')
Session = sessionmaker(bind=engine)
session = Session()
Base = declarative_base()
然后是类定义


我已经在其他计算机上尝试过这个脚本(不过我有根访问权限),包括在其他VirtualNV中,它工作得很好。我对可能出现的问题感到非常困惑

您的脚本可以访问数据库,但其中似乎没有表。我想您是从另一台机器上复制了脚本,您是否也复制了SQLite数据库文件
recDB.db

是的,我正在访问dropbox文件夹,因此它在所有机器上都是相同的。我认为virtualenv调用导入的方式存在一些问题,特别是
assignDB
?如果在创建引擎时找不到数据库,它不会传递错误吗?如果SQLite驱动程序找不到文件,它会创建它,这样您就不会在那里看到错误<代码>'sqlite:///recDB.db“是相对于当前工作目录的路径,我想您应该在
cd
ing到dropbox文件夹后启动python shell?您的
assignDB
导入成功,否则脚本的第一行将出现
ImportError
。你凭什么认为这是个进口问题?
from sqlalchemy import Column, Integer, String, ForeignKey, create_engine, Table
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, backref, sessionmaker
from sqlalchemy.dialects.sqlite import DATETIME, REAL

engine = create_engine('sqlite:///recDB.db')
Session = sessionmaker(bind=engine)
session = Session()
Base = declarative_base()