相关疑难解决方法(0)

Python:导入子包或子模块

已经使用扁平包,我没想到我遇到嵌套包的问题.这是…

目录布局

dir
 |
 +-- test.py
 |
 +-- package
      |
      +-- __init__.py
      |
      +-- subpackage
           |
           +-- __init__.py
           |
           +-- module.py
Run Code Online (Sandbox Code Playgroud)

init .py的内容

这两个package/__init__.pypackage/subpackage/__init__.py是空的.

内容 module.py

# file `package/subpackage/module.py`
attribute1 = "value 1"
attribute2 = "value 2"
attribute3 = "value 3"
# and as many more as you want...
Run Code Online (Sandbox Code Playgroud)

内容test.py(3个版本)

版本1

# file test.py
from package.subpackage.module import *
print attribute1 # OK
Run Code Online (Sandbox Code Playgroud)

这是导入东西的不良和不安全的方式(大量导入),但它有效.

版本2

# file test.py
import package.subpackage.module
from package.subpackage import module # …
Run Code Online (Sandbox Code Playgroud)

python import module package

72
推荐指数
2
解决办法
10万
查看次数

Python 3中的相对导入不起作用

我有以下目录:

mydirectory
??? __init__.py
??? file1.py 
??? file2.py
Run Code Online (Sandbox Code Playgroud)

我有一个在file1.py中定义的函数f.

如果,在file2.py中,我这样做

from .file1 import f
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

SystemError:父模块''未加载,无法执行相对导入

为什么?以及如何使它工作?

python import module

52
推荐指数
3
解决办法
5万
查看次数

标签 统计

import ×2

module ×2

python ×2

package ×1