当我运行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
答案 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安装到了不在路径的地方。
以下是我对解决方案的开发:
pip install jinja2
。您将获得类似需求已满足的内容:/usr/local/lib/python2.7/site-packages 中的jinja2,以及您需要的路径。我加入了它:
export PATH="/usr/local/lib/python2.7/site-packages:$PATH"
PYTHONPATH="$HOME/Scripts/:$PATH"
如果您已经拥有如上所述的PYTHONPATH行,请仅添加导出行。
重新启动shell /终端窗口,以便他们选择新路径。
这样做解决了我的问题"没有名为jinja2"
的模块答案 2 :(得分:0)
我遇到了这个问题。我同时安装了python2
和python3
(在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