提问人:DonPolettone 提问时间:11/14/2023 更新时间:11/15/2023 访问量:61
如何从同一个包中导入包?
How can I import a package from within the same package?
问:
我在这里得到了这个名为“pgk”的 python 包,我想从它本身的模块中导入它:
pkg/
__init__.py
test.py
__init__.py
为空
test.py
:
- 尝试时,我得到:
from .. import pkg
Traceback (most recent call last):
File "C:\Game Dev\pkg\test.py", line 1, in <module>
from .. import pkg
ValueError: attempted relative import beyond top-level package
- 尝试时,我得到:
import pkg
Traceback (most recent call last):
File "C:\Game Dev\pkg\test.py", line 1, in <module>
import pkg
ModuleNotFoundError: No module named 'pkg'
我读了很多关于 Python 3 中导入系统的文章,并且通常会解决这样的问题,但这次都失败了。我什至尝试过弄乱sys.path等东西,但我就是不知道如何实现这一目标。
答:
0赞
Nikoi Nikoi
11/15/2023
#1
我看到目录中只有一个文件(expept the init)。您是否尝试导入 test.py?
评论
0赞
DonPolettone
11/15/2023
嗨,Nikoi,我在 IDLE 中打开 test.py 并运行它。我想在 test.py 中导入 pkg。
0赞
Nikoi Nikoi
11/15/2023
您是否尝试从 pkg 导入单个模块?如果模块与 test.py 在同一个目录中,则可以使用 from pkg import some_module,否则,可以使用 sys 导入它们:import sys sys.path.append('/path/to/pkg') from pkg import some_module
0赞
DonPolettone
11/16/2023
我想从 test.py 中访问和使用整个 pkg,而不是包中的单个模块。也许我应该重新表述我的问题,因为这似乎不太清楚:目标是我有一个包(游戏引擎)。在这个包中,我想要一个用于展示引擎的模块。执行 test.py 模块时,会运行测试以展示包可以执行的操作,因此需要将其导入 test.py。
0赞
Community
11/16/2023
您的答案可以通过额外的支持信息得到改进。请编辑以添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何写出好答案的更多信息。
0赞
Nikoi Nikoi
11/17/2023
我的意思是,如果您尝试运行/访问包中的任何内容?您是否尝试将 test.py 放在其他子文件夹中并尝试导入包?您是否尝试过这样的系统方法:?import sys sys.path.append('/path/to/pkg') import pkg
评论
test.py
C:\Game Dev\pkg