ImportError:没有名为ex47.game的模块(是的,我有一个uu init_uu.py文件*并且*我尝试了所有PYTHONPATH的东西)

ImportError:没有名为ex47.game的模块(是的,我有一个uu init_uu.py文件*并且*我尝试了所有PYTHONPATH的东西),python,import,importerror,Python,Import,Importerror,因此,我正在努力完成“艰苦学习Python”练习47,我在练习中创建了骨架目录并创建了文件以进行自动测试。然而,当我尝试运行ex47_tests.py时,我得到了以下小提示: Traceback (most recent call last): File "ex47_tests.py", line 2, in <module> ImportError: No module named ex47.game 下面是调用游戏文件的代码片段: from nose.tools impor

因此,我正在努力完成“艰苦学习Python”练习47,我在练习中创建了骨架目录并创建了文件以进行自动测试。然而,当我尝试运行ex47_tests.py时,我得到了以下小提示:

Traceback (most recent call last):
  File "ex47_tests.py", line 2, in <module>
ImportError: No module named ex47.game
下面是调用游戏文件的代码片段:

from nose.tools import *
from ex47.game import Room
如果有人能帮我克服这个问题(也许能理解为什么这个错误会在似乎没有理由的时候不断出现),我会非常感激


另外,我还试着从项目目录运行“nosets”,有时它会起作用(但时间比指定的练习要短),有时它会给出一个错误,说它无法导入game.py文件。但是无论使用什么样的nosetest,我仍然无法获取ex47_tests.py文件来导入游戏文件。

根据请求,我将以答案的形式重新发布此消息


所以我解决了我的问题。显然,使用PYTHONPATH来读取目录中的所有内容的方法是位于所有文件所在的目录(本例中为项目目录)中,然后键入“export PYTHONPATH=”。基本上,将PYTHONPATH设置为“”

为Windows建议的解决方案对我不起作用,因此我将ex47_tests.py的前两行替换为以下四行:

  • 导入系统
  • sys.path.insert(0,'C:\Users\User\Test\projects\ex47\ex47')
  • 进口游戏
  • 从nose.tools导入*
  • 从游戏导入室

这似乎解决了nosetests等的任何问题。

您运行脚本的目录是什么。我正在项目目录(包含bin、docs、ex47和tests文件夹的目录)中运行nosetests,我试图从tests目录运行ex47_tests.py文件。我试图从ex47目录和项目目录运行ex47_tests.py文件,但没有成功,我解决了我的问题。显然,使用PYTHONPATH读取目录中所有内容的方法是将其放在所有文件所在的目录中(本例中为项目目录),并键入“export PYTHONPATH=”。基本上,将PYTHONPATH设置为“.”不错!请将您的解决方案作为答案发布。
from nose.tools import *
from ex47.game import Room