我正在尝试从同级文件夹中的 python 文件导入模块。我在这里阅读了几个类似的问题并尝试应用那里列出的解决方案,但我无法解决问题。
结构如下:
parentfolder/gfolder/codefolder/fileA.py
parentfolder/gfolder/utilfolder/util.py
Run Code Online (Sandbox Code Playgroud)
gfolder,codefolder并且utilfolder都有一个__init__.py.
我正在尝试在 fileA.py 中执行以下操作:
import gfolder.utilfolder.util as util
Run Code Online (Sandbox Code Playgroud)
我还尝试在导入语句之前添加:
sys.path.append(".../parentfolder/")
Run Code Online (Sandbox Code Playgroud)
这也不起作用:
import gfolder.utilfolder.util as util
ModuleNotFoundError: No module named 'gfolder'
Run Code Online (Sandbox Code Playgroud)
类似问题中的解决方案说要包含__init.py__在我已经拥有的目录中。
编辑:现在无论是sys.append和sys.insert工作,问题是,我包括在路径的结尾斜线。当我把它拿出来时,一切正常。
首先,让我向您描述Python 模块和Python 包之间的区别,以便我们在同一页面上。?
import aModuleName
# Here 'aModuleName' is just a regular .py file.
__init__.py文件。?from aPackageName import aModuleName
# Here 'aPackageName` is a folder with a `__init__.py` file
# and 'aModuleName', which is just a regular .py file.
因此,当我们有一个名为proj-dir的以下结构的项目目录时?
proj-dir
--|--__init__.py
--package1
--|--__init__.py
--|--module1.py
--package2
--|--__init__.py
--|--module2.py
请注意,我还在proj-dir本身中添加了一个空
__init__.py的,这也使它成为一个包。
现在,如果你想导入任何Python对象模块2的包装2成模块1的包1,然后导入在文件中的语句module1.py会
from proj-dir.package2.module2 import object2
# if you were to import the entire module2 then,
from proj-dir.package2 import module2
| 归档时间: |
|
| 查看次数: |
6188 次 |
| 最近记录: |