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

问题描述 投票:0回答:5

当我跑步

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

python jinja2
5个回答
12
投票

请注意,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

6
投票

Mark Edge 提出的最简单的解决方案对我来说不起作用,因为 pip 安装了 jinja2 来放置不在路径中。

这是我开发的解决方案:

  1. 如果您不知道或忘记在哪里 pip install jinja2,请再次使用
    pip install jinja2
    。您将得到类似 Requirement已经满足:jinja2 in /usr/local/lib/python2.7/site-packages 的内容,这就是您需要的路径。
  2. 您的主目录(/Users/Your_username)中应该有 .bash_profile 文件。

我添加了:

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

如果您已经有像上面这样的 PYTHONPATH 行,请仅添加导出行。

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

这样做解决了我的问题“没有名为 jinja2 的模块”


2
投票

我遇到了这个问题。 我安装了

python2
python3
(在 MacOS 上),并尝试在
python2
下运行(这是默认版本)。 看来
pip
默认为
python3
。 对我来说修复很简单:

pip2 install jinja2

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


1
投票

当我遇到这个问题时,我正在将脚本放入 Dockerfile 中。结果我的

#!/usr/bin/python3
触发了 python 的另一个实例。
FROM python:3
python3 二进制文件从路径中的 /usr/local/bin/python3 运行。

而不是运行为:

RUN ./myscript.py

我去了:

RUN python3 ./myscript.py

0
投票

可能是您最近在虚拟环境中安装了该软件包。可能最快的解决方案之一就是停用并重新激活虚拟环境。

deactivate
source .venv/bin/activate
© www.soinside.com 2019 - 2024. All rights reserved.