Python使用pip作为包管理工具,用于安装、升级和管理第三方库。
# 安装最新版本
pip install requests
# 安装指定版本
pip install requests==2.28.0
# 安装最低版本
pip install requests>=2.28.0
# 从requirements.txt安装
pip install -r requirements.txt
# 升级包
pip install --upgrade requests
# 卸载包
pip uninstall requests
# 列出所有已安装的包
pip list
# 显示包的详细信息
pip show requests
# 检查哪些包需要升级
pip list --outdated
# 导出已安装的包
pip freeze > requirements.txt
用于记录项目依赖的文件。
# requirements.txt示例
requests==2.28.0
numpy>=1.21.0
pandas==1.5.3
flask>=2.0.0,<3.0.0
django~=4.2.0 # 兼容版本
# 安装所有依赖
pip install -r requirements.txt
虚拟环境为每个项目创建独立的Python环境,避免包版本冲突。
# 创建虚拟环境
python -m venv myenv
# 激活虚拟环境
# Windows:
myenv\Scripts\activate
# macOS/Linux:
source myenv/bin/activate
# 退出虚拟环境
deactivate
# 1. 创建项目目录
mkdir myproject
cd myproject
# 2. 创建虚拟环境
python -m venv venv
# 3. 激活虚拟环境
source venv/bin/activate # macOS/Linux
# 或
venv\Scripts\activate # Windows
# 4. 安装依赖
pip install requests flask
# 5. 导出依赖
pip freeze > requirements.txt
# 6. 开发项目...
# 7. 退出虚拟环境
deactivate
功能更强大的虚拟环境工具。
# 安装virtualenv
pip install virtualenv
# 创建虚拟环境
virtualenv myenv
# 指定Python版本
virtualenv -p python3.9 myenv
# 激活和使用与venv相同
结合了pip和virtualenv的现代包管理工具。
# 安装pipenv
pip install pipenv
# 创建虚拟环境并安装包
pipenv install requests
# 安装开发依赖
pipenv install --dev pytest
# 激活虚拟环境
pipenv shell
# 运行命令
pipenv run python script.py
# 查看依赖树
pipenv graph
# 生成requirements.txt
pipenv requirements > requirements.txt
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
requests = "*"
flask = ">=2.0.0"
[dev-packages]
pytest = "*"
black = "*"
[requires]
python_version = "3.9"
现代化的Python依赖管理和打包工具。
# 安装poetry
curl -sSL https://install.python-poetry.org | python3 -
# 创建新项目
poetry new myproject
# 初始化现有项目
poetry init
# 添加依赖
poetry add requests
# 添加开发依赖
poetry add --dev pytest
# 安装所有依赖
poetry install
# 运行脚本
poetry run python script.py
# 激活虚拟环境
poetry shell
# 构建包
poetry build
# 发布到PyPI
poetry publish
[tool.poetry]
name = "myproject"
version = "0.1.0"
description = "项目描述"
authors = ["Your Name "]
[tool.poetry.dependencies]
python = "^3.9"
requests = "^2.28.0"
flask = "^2.0.0"
[tool.poetry.dev-dependencies]
pytest = "^7.0.0"
black = "^22.0.0"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
Anaconda的包管理器,适合数据科学项目。
# 创建环境
conda create -n myenv python=3.9
# 激活环境
conda activate myenv
# 安装包
conda install numpy pandas matplotlib
# 从conda-forge安装
conda install -c conda-forge scikit-learn
# 列出环境
conda env list
# 导出环境
conda env export > environment.yml
# 从文件创建环境
conda env create -f environment.yml
# 删除环境
conda env remove -n myenv
# 退出环境
conda deactivate
# 使用国内镜像源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
# 永久配置镜像源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 使用--user安装到用户目录
pip install --user requests
# 或使用虚拟环境(推荐)
# 使用pip check检查冲突
pip check
# 使用pipdeptree查看依赖树
pip install pipdeptree
pipdeptree
myproject/
├── venv/ # 虚拟环境(不提交到git)
├── src/
│ ├── __init__.py
│ └── main.py
├── tests/
│ └── test_main.py
├── requirements.txt # 生产依赖
├── requirements-dev.txt # 开发依赖
├── .gitignore
└── README.md
# 虚拟环境
venv/
env/
ENV/
.venv
# Python缓存
__pycache__/
*.py[cod]
*$py.class
# 分发/打包
dist/
build/
*.egg-info/
# IDE
.vscode/
.idea/
*.swp
# 练习1:创建项目和虚拟环境
mkdir myproject
cd myproject
python -m venv venv
source venv/bin/activate # macOS/Linux
pip install requests flask
# 练习2:导出依赖
pip freeze > requirements.txt
# 查看requirements.txt内容
cat requirements.txt
# 练习3:新环境安装依赖
cd ..
mkdir newproject
cd newproject
python -m venv venv
source venv/bin/activate
pip install -r ../myproject/requirements.txt
# 练习4:查看和升级包
pip list
pip show requests
pip install --upgrade requests
pip list # 查看升级后的版本