没有名为 Pygments 的模块

No module named Pygments

我已将 Pygments 安装到我的 virtualenv 中,它似乎已正确导入到我的项目中。

我正在使用 PyCharm,我没有从 IDE.

中收到任何导入错误

但是当我尝试在本地主机上 运行 它时,出现以下错误:

我的解释器是这样设置的:

如果我尝试导入整个 Pygments 模块,我会遇到同样的问题。知道是什么原因造成的吗?

让我们继续看看您在 "run" 应用程序时真正使用的解释器。

首先,我会在您执行 pygments 导入之前放置此命令: import sys; print(sys.executable)

这会让您很好地了解 python 解释器正在使用什么。

如果您运行从内部 PyCharm 获取内容,您可能忘记设置项目解释器。上面的行应该准确地告诉你。

无论如何,继续前进。要在 PyCharm 中设置项目解释器,请转到 File > Settings,您将看到此菜单:

转到 Project Interpreter 选项(在左侧)。在屏幕的右侧有一个小齿轮,如果你按下它,你会看到这个小菜单弹出:

我假设您的虚拟环境在您的本地机器上(而不是在某些虚拟机中)。如果这是真的,您只需单击 Add Local(即添加本地 python 解释器)。

在下一个菜单中,假设您的 virtualenv 位于目录 /home/myuser/virtualenv 中,继续并选择文件 /home/myuser/virtualenv/bin/python

差不多就这些了。

现在我假设你是 运行从 PyCharm 开始的项目。

如果我弄错了,而你是通过诸如 python -m my_module 之类的命令从控制台 运行 宁它,而你在 linux,请继续检查什么python 您正在使用的解释器,输入 type python。这将准确地告诉您那是否是您向我们展示的 site-packages.

所对应的 python

如果不是,请确保激活该虚拟环境(在 linux 上是 source /home/myuser/virtualenv/bin/activate)。对于 windows,google 是你的朋友。

可能发生的其他事情是您使用的一些 shell 有点懒惰,即使您已经安装了虚拟环境,它仍在使用以前使用的 python 版本。 在 bash 中使用命令 hash -r,在 zsh 中使用命令 rehash。这将更新您的 shell 以了解新的 python.

如果没有任何效果,只需post你的结果,我可以告诉你从那时起该怎么做。

从你最后的评论来看,你可能 activated 不是你的虚拟环境。

当您 cd 进入您 python manage.py runserver 所在的目录时,您使用的是错误的 python。要自己检查,只需转到您的终端,然后 cd 进入包含您的 manage.py 脚本的目录。在那里输入 python。在 python 控制台中,运行 这个:import sys; print(sys.executable)

[编辑]

如前所述,它将 /usr/bin/python。这不是您想要的 python 可执行文件。

为了让 python 在该上下文中引用安装了 pygments 的 python,您需要 激活虚拟环境 。这只是意味着使命令 python 成为您期望的命令。

这很容易用这条命令完成source ~/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/bin/activate

在你 运行 这个命令之后,你可以再次输入 python manage.py runserver <whatever options you want>,它应该可以工作。

如果没有,则键入 hash -r(如果您使用 bash shell)或 rehash 如果您使用 zsh。您可以通过键入命令 env | sort 并查找密钥 SHELL 来了解您正在使用什么 shell。

如果它仍然不起作用,在激活你的虚拟环境后,运行 命令 type python 和 post 结果,但如果你做的一切正确,有一个 99.99 % 成功的几率。