Python怎样引用其他.py文件?怎样导入其他模块?
- 游戏开发
- 2025-09-09 07:12:01

在 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.py1. 同级目录导入
从 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文件?怎样导入其他模块?”