从父目录导入错误 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
问题
你好。我在导入我编写的模块时遇到问题。我要导入的模块名为 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