2

我只是有一个关于我尝试导入时遇到的错误的快速问题:

from psychopy import gui

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

"ImportError: cannot import name gui"

有谁知道为什么会发生这种情况?为什么它对一个问题有效,而对另一个问题无效?另外,我觉得它以前没有这样做,它只是突然开始的。任何建议将不胜感激。

4

3 回答 3

2

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

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

那么,您有一个名为 的文件夹psychopy吗?重命名它psychopyStuff

于 2015-02-26T10:52:16.730 回答
2

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


鉴于你用标签标记了这个问题psychopy,我猜如果你从psychopy应用程序运行它,它会起作用,如果你从另一个编辑器或命令行运行它,它就不起作用。

原因是psychopy目前是作为一个捆绑包提供的,它附带了它自己的python和许多模块/依赖项,包括psychopy。系统不会通过PYTHONPATH.

您可以通过以下两种方式使它们在系统范围内可用(1)按照此处概述的步骤或(2)使用本文中描述的基础conda安装在psychopy-dev列表中。后一个功能仍在进行中,但可能最终会成熟成为默认安装选项。

于 2015-02-25T16:01:01.830 回答
1

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

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

如果存在单一环境,则输出将相同,否则两者的输出将不同。

于 2015-02-25T16:01:22.370 回答