没有名为jinja2的模块,但它已安装

时间:2014-04-18 02:12:20

标签: python jinja2

当我运行sudo pip install jinja2时,我看到:Requirement already satisfied: Jinja2 in /Users/rose/Library/Python/2.7/lib/python/site-packages/Jinja2-2.7.2-py2.7.egg

然而,在新的python 2.7 shell中运行import jinja2会产生:ImportError: No module named jinja2

4 个答案:

答案 0 :(得分:4)

请注意,Jinja2安装在您的主目录中,而Python的site-packages目录位于/Library/Python/2.7/site-packages。您的Python路径中可能不包含/Users/rose/Library/Python/2.7/lib/python/site-packages/,或者Python无法访问此目录。这可能是使用pip install jinja2而不是sudo pip install jinja2安装Jinja2的结果。

您可以通过打开Python shell来检查是否/Users/rose/Library/Python/2.7/lib/python/site-packages/

>>> import sys
>>> sys.path
['', '/usr/lib/python2.7', '/usr/lib/python2.7/dist-packages']

如果没有,最简单的解决方案可能只是重新安装Jinja2作为管理员:

pip uninstall jinja2
sudo pip install jinja2

答案 1 :(得分:2)

Mark Edge最简单的解决方案并没有为我工作,因为pip将jinja2安装到了不在路径的地方。

以下是我对解决方案的开发:

  1. 如果您不知道或忘记pip install jinja2的位置,请再次使用pip install jinja2。您将获得类似需求已满足的内容:/usr/local/lib/python2.7/site-packages 中的jinja2,以及您需要的路径。
  2. 主目录中应该有.bash_profile文件(/ Users / Your_username)。
  3. 我加入了它:

    export PATH="/usr/local/lib/python2.7/site-packages:$PATH"
    PYTHONPATH="$HOME/Scripts/:$PATH"
    

    如果您已经拥有如上所述的PYTHONPATH行,请仅添加导出行。

    重新启动shell /终端窗口,以便他们选择新路径。

    这样做解决了我的问题"没有名为jinja2"

    的模块

答案 2 :(得分:0)

我遇到了这个问题。我同时安装了python2python3(在MacOS上),并且试图在python2(这是默认版本)下运行。看来pip默认为python3。对我来说,解决方法很简单:

pip2 install jinja2

我还注意到,使用虚拟环境时不会出现此问题。

答案 3 :(得分:0)

遇到这个问题时,我正在将脚本放入Dockerfile中。原来我的#!/usr/bin/python3正在触发python的另一个实例。 FROM python:3 python3二进制文件是从路径中的/ usr / local / bin / python3运行的。

代替运行方式:

RUN ./myscript.py

我去了:

RUN python3 ./myscript.py