【问题标题】:Can't import importlib even though its on path [duplicate]即使在路径上也无法导入 importlib [重复]
【发布时间】: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 在 vi​​rtualenv 中运行。其中 pip 输出:/Users/virtualenv/bin/pip
  • 你确定你是从 virtualenv 运行 python 吗?因为如果你是,那么site-packages 目录应该已经在sys.path 上。与其猜测,不如尝试printing 出来。如果它不存在,那么要么你没有运行 virtualenv Python,要么你的 virtualenv 被严重搞砸了,你应该创建一个新的。
  • 同时,importlib 几乎肯定不应该出现在sys.path 上。您希望将其用作顶级包,而不是将其内容用作单独的顶级模块和包,当然不能同时使用两者。

标签: python virtualenv importerror


【解决方案1】:

尝试重新安装importlib。您可以使用pip uninstall importlib 删除该软件包。然后你可以尝试重新安装它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-19
    • 1970-01-01
    • 2013-03-13
    • 2020-09-12
    • 2014-11-23
    • 2021-06-26
    • 2022-08-13
    • 2016-05-03
    相关资源
    最近更新 更多