# Python 模块和包
# 模块基础
# 导入模块
# 基本导入
import math
print(math.pi)
# 导入特定函数
from random import randint
print(randint(1, 10))
# 重命名导入
import numpy as np
array = np.array([1, 2, 3])
# 创建模块
# mymodule.py
def greet(name):
return f"Hello, {name}!"
PI = 3.14159
class Calculator:
def add(self, x, y):
return x + y
# 使用模块
import mymodule
print(mymodule.greet("Python"))
# 包管理
# 创建包
mypackage/
__init__.py
module1.py
module2.py
subpackage/
__init__.py
module3.py
# mypackage/__init__.py
from .module1 import function1
from .module2 import function2
# 使用包
from mypackage import function1
from mypackage.subpackage import module3
# 相对导入
# 相对导入示例
from . import module1
from .. import sibling_module
from ..sibling_package import module
# 包分发
# setup.py
from setuptools import setup, find_packages
setup(
name="mypackage",
version="0.1",
packages=find_packages(),
install_requires=[
'requests>=2.22.0',
'pandas>=1.0.0',
],
)
# 虚拟环境
# 创建虚拟环境
python -m venv myenv
# 激活虚拟环境
source myenv/bin/activate # Unix
myenv\Scripts\activate # Windows
# 安装包
pip install package_name
# 导出依赖
pip freeze > requirements.txt
# 安装依赖
pip install -r requirements.txt
# 最佳实践
模块组织
- 合理划分模块功能
- 避免循环导入
- 使用清晰的命名
包结构
- 遵循Python包布局约定
- 合理使用__init__.py
- 提供清晰的文档
依赖管理
- 使用虚拟环境
- 明确指定依赖版本
- 定期更新依赖
发布准备
- 编写完整的README
- 添加许可证文件
- 包含测试用例
# 练习题
- 创建一个多模块的计算器包
- 实现包的安装和分发
- 管理复杂的包依赖
# 下一步
学习Python的测试框架和文档生成工具。