sách gpt4 ai đã đi

Nhập Python 3

In lại 作者:太空宇宙 更新时间:2023-11-04 04:10:30 32 4
mua khóa gpt4 Nike

我正在寻找一种导入模块的方法,以便我可以从子文件夹 project/v0 和根文件夹 dự án 运行脚本。/p>

我在 python 3.6 中的文件结构(这就是没有初始化文件的原因)

dự án
├── api.py
├── v0
│   ├── SearchEngine.py => contains SearchEngine class
│   └── SearchEngineBE.py

我的 SearchEngineBE.py 模块包含

from SearchEngine import SearchEngine

我的 api.py 模块包含

from v0.SearchEngineBE import SearchEngineBE 

第 1 步:当我从 project/v0 chạy python3 SearcheEngineBE.py 时,我的模块已正确导入并且一切顺利。

step2: 但是,当我从 dự án chạy python3 run api.py 时,我得到了错误:

Theo dõi (cuộc gọi gần đây nhất là cuộc gọi cuối cùng):
File "api.py", line 3, in
from v0.SearchEngineBE import SearchEngineBE
File "/xxx/project/v0/SearchEngineBE.py", line 3, in
from SearchEngine import SearchEngine
ModuleNotFoundError: No module named 'SearchEngine'

我该如何解决这个问题,以便第 1 步和第 2 步都能正常工作?

1 Câu trả lời

非相对导入由解释器在当前目录(以及任何其他搜索路径)中搜索。

您可以在 SearchEngineBE.py 文件中使用相对导入,让解释器知道您需要相关模块,而不是导入路径之外的模块:

# SearchEngineBE.py
from .SearchEngine import SearchEngine

. 让解释器知道您正在引用与当前模块相关的模块。您至少需要在与 SearchEngine.py 相同的目录中有一个空白的 __init__.py 文件才能使相对导入工作:

Các __init__.py files are required to make Python treat directories containing the file as packages.

https://docs.python.org/3/tutorial/modules.html

有关更多讨论,请参阅本指南:https://chrisyeh96.github.io/2017/08/08/definitive-guide-python-imports.html#absolute-vs-relative-import

biên tập:没有根包,这是行不通的。请参阅此帖子了解另一种方法:Importing modules from a neighbouring folder in Python

关于Python3 导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56361809/

32 4 0
太空宇宙
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com