【问题标题】:Is it possible to fix problems with relative imports?是否可以解决相对进口的问题?
【发布时间】:2020-11-04 14:06:28
【问题描述】:

我在导入机制方面遇到了一些问题。例如我有一棵这样的树:

├── my_package  
|   ├── first.py  
|   └── second.py  
└── test.py

second.py:

def second_func():
    print('Hello World')

first.py:

from second import second_func

def first_func():
    second_func()

test.py:

from my_package.first import first_func

first_func()

当我尝试运行 test.py 时,我得到了这个错误:

ModuleNotFoundError: No module named 'second'

感觉second.py不是在my_package中搜索,而是在my_pacakagetest.py所在的目录中搜索。这是一个奇怪的机制,因为如果我有一个现成的包,我不想在其中创建一些新文件,我想从另一个地方与之交互。

【问题讨论】:

  • my_package中创建__init__.py文件

标签: python-3.x relative-import


【解决方案1】:

首先在my_package 中创建一个__init__.py。将first.py的import语句改成如下

from .second import second_func

然后运行python test.py。它应该给Hello World

【讨论】:

    猜你喜欢
    • 2012-10-03
    • 1970-01-01
    • 2018-03-01
    • 2022-07-19
    • 2021-08-10
    • 1970-01-01
    • 2018-12-09
    • 2018-11-18
    • 1970-01-01
    相关资源
    最近更新 更多