[英]Module importation in Python3
我正在使用Python 3.4
我有一个看起来如下的目录结构:
A
B
c.py
d.py
__init__.py
C
e.py
f.py
__init__.py
g.py
__init__.py
从g.py中,我可以同时从B和C模块导入内容。
我需要在e.py中从c.py导入一些东西
我试过了:
import B
和
from B.c import stuff_I_need
对于我都得到错误:
"No module named B".
我也尝试过类似的方法:
from A.B.c import stuff_I_need
我对具有相同目录结构的事实感到困惑,我可以使用Python 2.7进行所需的导入。
您能帮我弄清楚发生了什么吗?
解:
PACKAGE_PARENT = '..'
SCRIPT_DIR = os.path.dirname(os.path.realpath(os.path.join(os.getcwd(), os.path.expanduser(__file__))))
sys.path.append(os.path.normpath(os.path.join(SCRIPT_DIR, PACKAGE_PARENT)))
取自这里 。
导入时,它会在python文件夹中查找要导入的文件和本地目录中的文件。 如果要导入两个文件都不包含的文件,则建议使用sys
模块
import sys
sys.path.append(r'file-path\A') # Folder A
import B.c
如果您不想设置完整的文件路径,则也可以使用此方法回溯到上一个目录,以达到相同的效果。
sys.path.append('..') # Previous Directory
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.