从父目录导入错误 Python 3.6.9

Import error from parent directory in Python 3.6.9

问题

你好。我在导入我编写的模块时遇到问题。我要导入的模块名为 neural_networks,在 neural_networks.py 文件中定义。

目录树:

├── neural_networks.py
└── directory
    ├── neural_networks.py
    └── calling_module.py

neural_networks.py

def function_to_import():
    pass

我阅读了 Python 部分 5.7. Package Relative Imports 中的 3 个文档,并应用了其中所写的内容,但并非全部有效。

calling_module.py

// ImportError: attempted relative import with no known parent package
from . import neural_networks

// SyntaxError: invalid syntax
import ..neural_networks

// ImportError: attempted relative import with no known parent package
from ..directory import neural_networks

// SyntaxError: invalid syntax
import .neural_networks

// works and i can use function_to_import() using neural_networks.function_to_import()
import neural_networks

问题

如何在 calling_module 中正确导入和使用 neural_networks 模块?

提前致谢。

我们可以在调用其他导入之前使用 sys 添加父路径:

import sys

sys.path.append("..")

然后:

from neural_networks import neural_networks

此外,您可以在包含要导入的 .py 的目录中添加一个 __init__.py 文件(空)。

@tlentali 已经回答正确,但是如果你想使用绝对路径而不是相对路径,你可以这样做

import os,inspect,sys
current_dir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
parent_dir = os.path.dirname(current_dir)
sys.path.append(parent_dir)

然后直接导入,

from neural_networks import neural_networks