(Python的新手,老Java家伙。)我已经遵循了Python项目设置的建议(详见此处:What is the best project structure for a Python application?)。
我的结构是:
artman
`-- artman
+-- artman.py
+-- util.py
`-- test
`-- util_test.py
...我的测试代码尝试导入 util.py 中要测试的内容,但未成功:
import unittest
import util # <------ Unresolved import: util
class UtilTest( unittest.TestCase ):
def testLookForArtmanRoot( self ):
util.lookForArtmanRoot( "." )
if __name__ == "__main__":
#import sys;sys.argv = ['', 'Test.testName']
unittest.main()
我确定这是一个简单的新手Python错误,但是尽管谷歌搜索我不知道我是否必须修改PYTHONPATH或采用其他解决方案。
答案 0 :(得分:3)
虽然这不是绝对必要的,但我会消除歧义 目录/包/模块结构,以便您了解,每个步骤的目的都将是明确的。
artman_dir
`-- artman_pkg
+-- __init__.py
+-- artman.py
+-- util.py
+-- test
`-- util_test.py
artman_dir
添加到您的PYTHONPATH。__init__.py
的空文件添加到artman_pkg
。这两个步骤一起允许你
import artman_pkg
来自任何 python脚本。
然后,您可以在util
using an absolute import中导入util_test.py
:
import artman_pkg.util as util
并且其余代码可以保持不变。