gpt4 book ai didi

Python路径解释: import from a subpackage

转载 作者:太空宇宙 更新时间:2023-11-04 10:39:44 24 4
gpt4 key购买 nike

这个问题详细说明了我无法向自己解释的行为。

src/package/__init__.py 为空但存在。

src/package/subpackage/__init__.py:

pink = 'It works'

src/package/test/test.py:

import package.subpackage as subpackage
# I also tried `import package.subpackage as subpackage

print subpackage.pink

src 调用:python package/test/test.py 失败并显示 ImportError: No module named subpackage。请注意,import package 也不起作用。

注意:(从 src 运行解释器并输入 import 语句效果非常好。

我应该明白我不应该调用包的子文件吗?在我的项目中,它是一个测试文件,所以对我来说把它放在这里听起来合乎逻辑。

为什么当前工作目录不在导入路径中?

非常感谢阅读和回答的人。

最佳答案

因为你的包不在 $PYTHONPATH 中。如果你要调用test.py,你可以将你的test.py文件移动到src/目录,或者将src添加到$PYTHONPATH

PYTHONPATH="/path/to/src:$PYTHONPATH"
export PYTHONPATH

来自文档

When a module named spam is imported, the interpreter first searches for a built-in module with that name. If not found, it then searches for a file named spam.py in a list of directories given by the variable sys.path

>>> import sys
>>> sys.path

输出是这样的

['.', '/usr/bin', ...

这意味着当前目录也在 sys.path 中。如果要导入模块,请确保模块路径在 sys.path 中,方法是将包目录添加到环境变量 PYTHONPATH,或者将当前目录或脚本目录更改为包目录。

关于Python路径解释: import from a subpackage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21352669/

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