主页 > 游戏开发  > 

Python怎样引用其他.py文件?怎样导入其他模块?

Python怎样引用其他.py文件?怎样导入其他模块?

在 Python 中导入其他 .py 文件主要通过模块和包机制实现,以下是多种场景的导入方法。


基础目录结构示例

假设项目结构如下:

my_project/ ├── main.py ├── utils/ │ ├── __init__.py │ └── math_utils.py └── models/ ├── __init__.py ├── layers/ │ ├── __init__.py │ └── activation.py └── dptnet/ ├── __init__.py └── dpt_modules.py
1. 同级目录导入

从 math_utils.py 导入到 main.py:

# main.py from utils.math_utils import add_numbers # 绝对导入 class MyModel: def __init__(self): print(add_numbers(1, 2))
2. 子目录导入

从 dpt_modules.py 导入到 main.py:

# main.py from models.dptnet.dpt_modules import DPTBlock # 绝对导入 model = DPTBlock()
3. 多层相对路径导入 (1) 使用相对导入(包内部使用)

在 activation.py 中导入上级目录的模块:

# models/layers/activation.py from .. import ModelBase # .. 表示上一级目录(models) from ...utils.math_utils import add_numbers # ... 表示上两级目录(my_project) (2) 多层子包相对导入

在 dpt_modules.py 中导入兄弟目录的模块:

# models/dptnet/dpt_modules.py from ..layers.activation import ReLU # 从 models/layers 导入
4. 使用 __init__.py 简化导入

在包的 __init__.py 中预先声明导出内容:

# models/dptnet/__init__.py from .dpt_modules import DPTBlock, DPTEncoder # 相对导入

现在可以直接从包名导入:

# main.py from models.dptnet import DPTBlock # 更简洁的导入方式
5. 处理特殊场景 (1) 动态添加系统路径(不推荐但实用) import sys sys.path.append("/path/to/my_project") # 添加项目根目录到系统路径 from models.dptnet import DPTBlock (2) 使用 importlib 动态导入 import importlib module = importlib.import_module("models.dptnet.dpt_modules") DPTBlock = getattr(module, "DPTBlock")
标签:

Python怎样引用其他.py文件?怎样导入其他模块?由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Python怎样引用其他.py文件?怎样导入其他模块?