0

如果我在 python 中有以下文件结构:

    directory1
    ├── directory2
    │   └── file2
    └── file1

其中目录 2 是目录 1 的子目录,并且假设两者都不是包,假设我使用的是 sys.path,如何从 file2 引用 file1 模块?假设我在文件 1 中有 x=1 并且我想打印出文件 2 中 x 的值,我将在文件 2 中使用什么导入语句?

4

2 回答 2

1

如果 directory1 和 directory2 都是sys.path绝对路径,无论一个是另一个的子目录,那么您可以使用简单的语句导入这两个文件(我假设它们至少以 .py 扩展名命名):

# in file 1:
import file2

# in file 2:
import file1

然后你可以像往常一样访问内容:

# in file 2
import file1
print file1.x

如果您需要sys.path在 file2 中进行设置,请使用以下内容:

# in file 2
import sys
import os.path
path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0,path)

import file1
print file1.x
于 2013-01-28T02:29:50.393 回答
0
└── directory1
    ├── directory2
    │   └── file2.py
    └── file1.py

$ cat directory1/file1.py

x=1

$ cat directory1/directory2/file2.py

import sys 
from os.path import  dirname, realpath
sys.path.append(dirname(realpath(__file__)) + '/..')
sys.path.append('..')

from file1 import x

print x

$ python directory1/directory2/file2.py

1
于 2013-01-28T02:29:08.750 回答