繁体   English   中英

Python3中的模块导入

[英]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

你需要做

from .B import c

要么

import A.B.c

参考:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM