gpt4 book ai didi

python - 导入错误: No module named 'code.helper'

转载 作者:太空宇宙 更新时间:2023-11-03 13:58:26 26 4
gpt4 key购买 nike

这可能是一个已被问过多次的问题,但我找不到包含我正在寻找的答案的帖子。

这是我的结构:

/myproject
--/code
--/__init__.py
--/helper.py
--/tests
--/test_helper.py
--/docs

代码/helper.py

def testFunction(x)
return x + 1

测试/test_helper.py

import unittest
from code.helper import testFunction

class MyTest(unittest.TestCase):

def test(self):
self.assertEqual(testFunction(3), 4)

每当我从 ~/home/user/Projects/myproject/tests 运行“python3 -m unittest test_helper.py”时 - 我收到错误:

ImportError: No module named 'code.helper'; 'code' is not a package

我没有收到任何语法错误。

最佳答案

您的 Python 路径中没有 myproject。当当前目录为 myproject 时它可以工作,因为当前目录始终位于 Python 路径上。但是,当您更改为 tests 时,Python 不再知道在哪里可以找到 code

192% pwd
/Users/chepner/myproject
192% python3 -m unittest tests/test_helper.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
192% cd tests
192% pwd
/Users/chepner/myproject/tests
192% python3 -m unittest test_helper.py
E
======================================================================
ERROR: test_helper (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: test_helper
Traceback (most recent call last):
File "/usr/local/Cellar/python/3.6.4_4/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/loader.py", line 153, in loadTestsFromName
module = __import__(module_name)
File "/Users/chepner/myproject/tests/test_helper.py", line 2, in <module>
from code.helper import testFunction
ModuleNotFoundError: No module named 'code.helper'; 'code' is not a package


----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (errors=1)

简单的修复方法是,不要从 tests 目录运行测试!不过,另一个解决方案是在运行测试之前将 myproject 添加到路径中:

% PYTHONPATH=.. python3 -m unittest test_helper.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

您可以将任何内容添加到 PYTHONPATH 中,以正确解析为 myproject;我只是在这里使用了简单的相对路径 ..,但是像 PYTHONPATH=/Users/chepner/myproject 这样的绝对路径也可以工作。

关于python - 导入错误: No module named 'code.helper' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49431681/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com