【发布时间】:2013-09-20 01:45:42
【问题描述】:
在我克隆到的 django 项目上工作,我正在尝试在我的 virtualenv 中运行初始同步数据库。当我这样做时,它会抛出
ImportError: No module named importlib
真正让我困惑的是:我特地跑了
pip install importlib
Requirement already up-to-date: importlib in /Users/virtualenv/lib/python2.6/site-packages
好的,所以它可能不在我的 python 路径上,所以我确保它已被添加:
$ >>> import sys
$ >>> sys.path.insert(0, "/Users/virtualenv/lib/python2.6/site-packages")
$ >>> sys.path.insert(0, "/Users/virtualenv/lib/python2.6/site-packages/importlib")
现在,如果我导入 importlib,它就在那里
$ >>> print importlib
<module 'importlib' from '/Users/virtualenv/lib/python2.6/site-packages/importlib/__init__.pyc'>
但如果我运行 $ python manage.py syncdb 它会继续给我 ImportError。关于我可以运行的进一步测试或可能导致这种情况的任何想法?谢谢
Django 版本是 1.5.3,virtualenv 中的 Python 版本是 2.6.8
>>> print sys.version
2.6.8 (unknown, Apr 19 2012, 01:24:00)
【问题讨论】:
-
这可能会有所帮助:stackoverflow.com/questions/9072076
-
你确定你是从你的 virtualenv 运行 pip 的吗?
which pip的输出是什么 -
是的 pip 在 virtualenv 中运行。其中 pip 输出:/Users/virtualenv/bin/pip
-
你确定你是从 virtualenv 运行 python 吗?因为如果你是,那么
site-packages目录应该已经在sys.path上。与其猜测,不如尝试printing 出来。如果它不存在,那么要么你没有运行 virtualenv Python,要么你的 virtualenv 被严重搞砸了,你应该创建一个新的。 -
同时,
importlib几乎肯定不应该出现在sys.path上。您希望将其用作顶级包,而不是将其内容用作单独的顶级模块和包,当然不能同时使用两者。
标签: python virtualenv importerror