74

假设我有以下目录结构:

parent_dir/
    foo_dir/
        foo.py
    bar_dir/
        bar.py

如果我想bar.py从内部导入foo.py,我会怎么做?

4

4 回答 4

51

如果所有出现的目录都是 Python,即它们都包含__init__.py,那么您可以使用

from ..bar_dir import bar

如果目录不是 Python 包,你可以通过弄乱 来做到这一点sys.path,但你不应该这样做。

于 2012-04-22T23:00:37.733 回答
39

您可以使用sysos模块进行通用导入。从foo.py线条开始

import sys
import os
sys.path.append(os.path.abspath('../bar_dir'))
import bar
于 2012-04-22T23:01:36.593 回答
1

假设您有以下结构:

root
  |_ productconst.py
  |_ products
     |_ __init__.py

如果您想在中导入 productconst products.__init__,则可以使用以下命令:

from ..productconst import * 
于 2022-01-16T17:50:53.203 回答
0

如果您在 python 3+ 中遇到问题,以下对我有用,使用sys.path.append("..").

sys.path.append("..")
from bar_dir import bar
于 2021-09-27T15:22:40.777 回答