Python中导入错误不一致

时间:2015-02-25 15:31:26

标签: python user-interface psychopy

我只是对我尝试导入时遇到的错误提出了一个简单的问题:

from psychopy import gui

因此,如果我尝试在一个程序中导入此代码,我没有任何问题,但是,如果我尝试在另一个程序中导入它,我会得到:

"ImportError: cannot import name gui"

有谁知道为什么会这样?为什么它适用于一个问题,而不适用于另一个问题?此外,我觉得它之前没有这样做,而且它突然开始了。任何建议将不胜感激。

3 个答案:

答案 0 :(得分:2)

更新:我认为Jon的回答是正确的。如果我是对的,你应该得到一个错误“没有名为psychopy的模块”。


鉴于您使用psychopy标记标记了此问题,我的猜测是,如果您从心理学应用程序运行它并且如果您从其他编辑器或命令行运行它,则它无效。

原因是心理模型目前作为一个捆绑包附带,它附带了它自己的python和许多模块/依赖项,包括心理学。系统未通过PYTHONPATH了解这些模块。

您可以通过(1)按照[{3}}概述的步骤或(2)使用psychopy-dev中here中描述的基于conda的安装,在系统范围内使用它们。名单。后一个功能仍在进行中,但最终可能会成熟为默认安装选项。

答案 1 :(得分:2)

认为其他答案都是错的;-) 我想如果您有不同的虚拟环境或安装,那么代码中的错误将表示"没有名为psychopy的模块"

事实上,它发现了一种叫做心理的东西,但是没有一种叫做gui的子模块是一个不同的问题。如果您当前工作目录旁边有一个名为psychopy的文件夹或文件(例如,您启动脚本的旁边),通常会发生这种情况。然后Python认为它是psychopy模块,但无法在其中找到gui

那么,你有一个名为psychopy的文件夹吗?将其重命名为psychopyStuff

答案 2 :(得分:1)

我认为您正在为这两个项目使用不同的虚拟环境,因此该软件包安装在一个virtualenv中,而不是安装在另一个中。

要验证是这种情况,请在两个项目中执行pip freeze并比较结果。

如果只有一个环境,输出会相同,否则输出会有所不同。