gpt4 book ai didi

python - 对 python 导入感到困惑

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:22:59 24 4
gpt4 key购买 nike

我评论了the Python 2.7.5 documentation .我的真实项目有问题,但在这里创建了一个小型测试项目以简明地重现该问题。想象一个具有以下布局的包存储在 ~/Development/Test

结构如下:

Test/
__init__.py
foo.py
sub/
__init__.py
test_foo.py

代码(__init__.py 文件是空的):

foo.py

def bar():
print("hello world")

test_foo.py

import Test.foo
# also tried from Test import foo

def main():
foo.bar()

if __name__ == "__main__":
main()

当尝试从终端运行 test_foo.py 时(即 python test_foo.py),我得到:

Traceback (most recent call last):
File "test_foo.py", line 1, in <module>
import Test.foo
ImportError: No module named Test.foo

我正在尝试从子模块中的测试文件导入包 (foo.py) 中的主文件(在我的真实项目中,子模块是单元测试代码)。奇怪地使用 Sublime text 2编辑器和插件 python test runner ,我可以很好地运行我的个人测试,但我无法构建测试文件。它给了我上述错误。

最佳答案

模块名称区分大小写。使用:

import Test.foo as foo

(as foo 是为了让您可以在 main 中调用 foo.bar。)


您还必须在 PYTHONPATH 中列出 ~/Development

如果使用 Unix 并且您的登录 shell 是 bash,将 ~/Development 添加到 PYTHONPATH 编辑 ~/.profile 以包含

export PYTHONPATH=$PYTHONPATH:$HOME/Development

这是 instructions for Windows .


进一步的调试建议:

地点

import sys
print(sys.path)
import Test
print(Test)
import Test.foo

test_foo.py 的顶部。请发布输出。

关于python - 对 python 导入感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18301580/

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