假设我有以下目录结构:
parent_dir/
foo_dir/
foo.py
bar_dir/
bar.py
如果我想在foo.py
中导入bar.py
,我该怎么做?
假设我有以下目录结构:
parent_dir/
foo_dir/
foo.py
bar_dir/
bar.py
如果我想在foo.py
中导入bar.py
,我该怎么做?
如果所有出现的目录都是Python 包,也就是它们都包含__init__.py
文件,那么你可以使用以下方法:
from ..bar_dir import bar
如果这些目录不是Python包,你可以通过操作sys.path
来实现,但你不应该这样做。
sys.path
可能是可以的。 - Sven Marnachipython foo.py
的时候,会得到以下错误信息:ImportError: attempted relative import with no known parent package
。我已经在父目录和 bar_dir
目录中添加了一个 __init__.py
文件。 - wlad您可以使用 sys
和 os
模块进行通用导入。在 foo.py
中,从以下行开始:
import sys
import os
sys.path.append(os.path.abspath('../bar_dir'))
import bar
foo.py
所在的兄弟目录。要使用脚本的目录,请使用 sys.path.append(os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'bar')))
. - cowlinatorroot
|_ productconst.py
|_ products
|_ __init__.py
如果您想在products.__init__
中导入productconst
,则可以使用以下代码:
from ..productconst import *
sys.path.append("..")
。sys.path.append("..")
from bar_dir import bar