2016-01-24 95 views
0

我已经将Pygments安装到了我的virtualenv中,并且它似乎可以正确导入到我的项目中。没有名为Pygments的模块

我使用PyCharm,和我越来越从IDE没有导入错误。

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

我的解释是成立这样的:

我得到同样的问题,如果我尝试导入整个Pygments模块。任何想法可能会造成这种情况?

+0

你有没有把它加到你的'INSTALLED_APPS'? –

+0

可能您已经将'Django'安装为全局包,并且您不在PyCharm中设置virtualenv。 –

+0

如果我将它添加到已安装的应用程序中,我会收到“应用程序尚未加载”错误。 – 123

回答

3

让我们继续,找出当您“运行”您的应用程序时,您真正使用的是哪一个解释器。

首先,我把这个命令你做的Pygments来做进口之前: import sys; print(sys.executable)

这会给你什么Python解释器使用的一个很好的迹象。

如果您在PyCharm内运行的东西,您可能忘记设置项目解释器。上面的行应该完全告诉你。

无论如何,前进。要设置在PyCharm项目的解释,去File > Settings,你会看到该菜单: enter image description here

转到Project Interpreter选项(左侧)。在屏幕的右侧有小档案,如果按下此按钮,则会弹出一个小菜单:enter image description here

我假设您的虚拟环境位于本地计算机上(而不是某些虚拟机中)。如果这是真的,你可以点击Add Local(添加本地python解释器)。

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

就是这样。

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

如果我错了,你是从通过如python -m my_module命令控制台运行它,而你在Linux下,继续前进,检查你键入type python使用的是什么python解释。这会告诉你,如果这是你向我们展示站点包的python。

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

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

如果什么都行不通,只是发布你的结果,我可以告诉你从那时起该做什么。

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

当您将cd纳入您的目录python manage.py runserver时,您使用的是错误的python。要亲自检查,只需转到您的终端,然后cd进入包含您的manage.py脚本的目录。在那里输入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>,它应该工作。

如果没有,那么如果您使用的是zsh,则输入hash -r(如果您使用的是bash shell)或rehash。通过输入命令env | sort,并找到密钥SHELL,可以找出正在使用的shell。

如果它仍然不起作用,激活你的虚拟环境后,运行命令type python并发布结果,但如果你做的一切都正确的话,它有99.99%的机会。

+0

所以我用'print(sys.executable)'返回'usr/bin/python',它不应该是。我在PyCharm中将解释器设置为正确的本地virtualenv,所以我不确定它是如何使用错误的版本的。我添加了一个PyCharm的图像,向我的问题展示解释器。 – 123

+0

你如何运行你的应用程序? Pycharm设置正确,但实际运行代码的解释器与pycharm无关,并且是导致问题的原因之一。请分享您在运行应用程序时采取的确切步骤。例如,你是否使用pycharm中的“运行”按钮?如果是这样,请使用您的配置放置一个打印屏幕。也许你还没有在那里指定合适的翻译。 Pycharm很复杂,首先理解python,然后pycharm,否则你会陷入如下奇怪的情况:D –

+0

我通过localhost运行项目,而不是PyCharm。这可能与我的virtualenv有一些关系吗? – 123