我已将 Pygments 安装到我的 virtualenv 中,并且它似乎已正确导入到我的项目中。
我正在使用 PyCharm,并且我没有从 IDE 中收到任何导入错误。
但是当我尝试在本地主机上运行它时,出现以下错误:
如果我尝试导入整个 Pygments 模块,我也会遇到同样的问题。知道是什么原因造成的吗?
最佳答案
让我们继续找出当您“运行”应用程序时您真正使用的解释器。
首先,我会在执行 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
。这将准确地告诉您这是否是您向我们展示站点包的 python。
如果不是,请确保激活该虚拟环境(在 Linux 上为 source /home/myuser/virtualenv/bin/activate
)。对于 Windows,Google 是您的 friend 。
可能发生的其他事情是,您使用的 shell 有点懒,即使您已经安装了虚拟环境,它仍然使用以前使用的 python 版本。
在 bash
,使用命令hash -r
,在 zsh
使用命令rehash
。这将更新您的 shell 以了解新的 python。
如果没有效果,只需发布你的结果,我可以告诉你从那时起该怎么做。
从您最近的评论来看,您可能没有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。 ,andl寻找 key SHELL
。
如果仍然不起作用,请在激活虚拟环境后,运行命令 type python
并发布结果,但如果您正确执行了所有操作,则有 99.99% 的机会它会起作用。
关于python - 没有名为 Pygments 的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34972908/