我只是有一个关于我尝试导入时遇到的错误的快速问题:
from psychopy import gui
因此,如果我尝试在一个程序中导入此代码,我没有问题,但是,如果我尝试在另一个程序中导入它,我会得到:
"ImportError: cannot import name gui"
有谁知道为什么会发生这种情况?为什么它对一个问题有效,而对另一个问题无效?另外,我觉得它以前没有这样做,它只是突然开始的。任何建议将不胜感激。
我只是有一个关于我尝试导入时遇到的错误的快速问题:
from psychopy import gui
因此,如果我尝试在一个程序中导入此代码,我没有问题,但是,如果我尝试在另一个程序中导入它,我会得到:
"ImportError: cannot import name gui"
有谁知道为什么会发生这种情况?为什么它对一个问题有效,而对另一个问题无效?另外,我觉得它以前没有这样做,它只是突然开始的。任何建议将不胜感激。
我认为其他答案是错误的;-) 我认为如果您有不同的虚拟环境或安装,那么您的代码中的错误将表明“没有名为 Psychopy 的模块”
它找到了一种叫做psychopy的东西,但没有找到叫做gui的子模块,这是一个不同的问题。如果您在当前工作目录旁边有一个名为psychopy 的文件夹或文件(例如,在您启动脚本的位置旁边),通常会发生这种情况。然后 Python 认为这是psychopy
模块,但在其中找不到gui
。
那么,您有一个名为 的文件夹psychopy
吗?重命名它psychopyStuff
。
更新:我认为乔恩的答案是正确的。如果我是对的,你应该得到一个错误“没有名为psychopy的模块”。
鉴于你用标签标记了这个问题psychopy
,我猜如果你从psychopy应用程序运行它,它会起作用,如果你从另一个编辑器或命令行运行它,它就不起作用。
原因是psychopy目前是作为一个捆绑包提供的,它附带了它自己的python和许多模块/依赖项,包括psychopy。系统不会通过PYTHONPATH
.
您可以通过以下两种方式使它们在系统范围内可用(1)按照此处概述的步骤或(2)使用本文中描述的基础conda
安装在psychopy-dev列表中。后一个功能仍在进行中,但可能最终会成熟成为默认安装选项。
我认为您为这两个项目使用了不同的虚拟环境,因此该软件包安装在一个 virtualenv 中,而不是另一个。
要验证是否是这种情况,请pip freeze
在两个项目中执行 a 并比较结果。
如果存在单一环境,则输出将相同,否则两者的输出将不同。