如何解决相对导入
How to resolve relative import
目前,我正在为我的测试玩弄绝对和相对导入。下面是文件结构的例子。
文件结构:
project/
main_script.py
input1.csv
input2.csv
Testing/
test_script.py
test_input1.csv
test_input2.csv
test_output.csv
main_script.py
中的代码
def function1():
{function definition here}
def function2():
{function definition here}
def function3():
{function definition here}
test_script.py
中的代码
import pytest
from ..main_script import function1, function2, function3
我在 运行 test_script:
时得到的输出
ImportError: attempted relative import with no known parent package
根据我从不同来源阅读的示例和我看过的教程,这应该是我的问题的解决方案,但出现了更多错误。这是为什么?
您可以尝试以下任何一种方式 -
- 使用绝对导入
- 使用标准方式导入并从关键字中删除
示例:导入 main_script.function1
- 将它放入你的包的 init.py -
对于在 Python 3.6 中工作的相对导入 -
导入 os, 系统; sys.path.append(os.path.dirname(os.path.realpath(文件)))
现在使用正常的导入语句,如:
来自 main_script 导入函数 1
如果这对您有帮助,请告诉我。
快乐学习!!
目前,我正在为我的测试玩弄绝对和相对导入。下面是文件结构的例子。
文件结构:
project/
main_script.py
input1.csv
input2.csv
Testing/
test_script.py
test_input1.csv
test_input2.csv
test_output.csv
main_script.py
中的代码def function1():
{function definition here}
def function2():
{function definition here}
def function3():
{function definition here}
test_script.py
中的代码import pytest
from ..main_script import function1, function2, function3
我在 运行 test_script:
时得到的输出ImportError: attempted relative import with no known parent package
根据我从不同来源阅读的示例和我看过的教程,这应该是我的问题的解决方案,但出现了更多错误。这是为什么?
您可以尝试以下任何一种方式 -
- 使用绝对导入
- 使用标准方式导入并从关键字中删除 示例:导入 main_script.function1
- 将它放入你的包的 init.py - 对于在 Python 3.6 中工作的相对导入 - 导入 os, 系统; sys.path.append(os.path.dirname(os.path.realpath(文件))) 现在使用正常的导入语句,如: 来自 main_script 导入函数 1
如果这对您有帮助,请告诉我。 快乐学习!!