1. 使用 pip(最常用)

1.1 基本安装命令

# 安装最新版本
pip install package_name

# 安装指定版本
pip install package_name==1.2.3

# 安装最低版本要求
pip install "package_name>=1.2.0"

# 安装兼容版本
pip install "package_name~=1.2.0"  # 相当于 >=1.2.0, <1.3.0

1.2 从不同源安装

# 从 PyPI 安装(默认)
pip install requests

# 从本地文件安装
pip install ./package_directory
pip install package_file.whl

# 从 Git 仓库安装
pip install git+https://github.com/user/repo.git
pip install git+https://github.com/user/repo.git@v1.0  # 指定标签
pip install git+https://github.com/user/repo.git@branch_name  # 指定分支

# 从 requirements.txt 文件安装
pip install -r requirements.txt

1.3 常用选项

# 升级已安装的包
pip install --upgrade package_name
pip install -U package_name

# 强制重新安装
pip install --force-reinstall package_name

# 不安装依赖
pip install --no-deps package_name

# 仅下载不安装
pip download package_name

# 安装到用户目录(不需要管理员权限)
pip install --user package_name

# 指定安装索引源(国内镜像加速)
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ package_name

1.4 国内常用镜像源

# 清华大学
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ package_name

# 阿里云
pip install -i https://mirrors.aliyun.com/pypi/simple/ package_name

# 豆瓣
pip install -i https://pypi.douban.com/simple/ package_name

# 中国科学技术大学
pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ package_name

# 设置默认镜像源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/

2. requirements.txt 文件管理

2.1 生成 requirements.txt

# 导出当前环境所有包
pip freeze > requirements.txt

# 导出项目实际使用的包(推荐)
pipreqs ./project_directory

2.2 requirements.txt 文件格式示例

# 基本包
requests==2.28.1
numpy>=1.21.0
pandas~=1.5.0

# 从 Git 安装
git+https://github.com/user/repo.git@v1.0

# 从本地路径安装
-e ./local_package

# 注释说明
# 数据处理相关
scikit-learn==1.1.2
matplotlib==3.6.0

# 开发依赖
pytest>=7.0.0
black~=22.0

2.3 安装 requirements.txt

# 安装所有依赖
pip install -r requirements.txt

# 安装时忽略已安装的包
pip install --ignore-installed -r requirements.txt

# 安装到特定目录
pip install --target ./libs -r requirements.txt

3. 使用 conda(Anaconda/Miniconda 用户)

3.1 基本命令

# 从 conda-forge 安装
conda install package_name

# 从指定频道安装
conda install -c conda-forge package_name

# 安装指定版本
conda install package_name=1.2.3

# 更新包
conda update package_name

# 从 requirements.txt 安装(需要先转换格式)
conda install --file requirements.txt

3.2 conda 与 pip 混合使用

# 在 conda 环境中优先使用 conda,conda 找不到时再用 pip
conda install package_name  # 优先尝试
pip install package_name    # conda 找不到时使用

4. 虚拟环境管理

4.1 使用 venv(Python 3.3+ 内置)

# 创建虚拟环境
python -m venv myenv

# 激活虚拟环境
# Windows
myenv\Scripts\activate
# macOS/Linux
source myenv/bin/activate

# 在虚拟环境中安装包
pip install package_name

# 退出虚拟环境
deactivate

# 删除虚拟环境(直接删除文件夹)
rm -rf myenv  # macOS/Linux
rmdir /s myenv  # Windows

4.2 使用 virtualenv(第三方工具)

# 安装 virtualenv
pip install virtualenv

# 创建虚拟环境
virtualenv myenv

# 激活和使用方式与 venv 相同

4.3 使用 conda 环境

# 创建 conda 环境
conda create -n myenv python=3.9

# 激活环境
conda activate myenv

# 在环境中安装包
conda install package_name

# 退出环境
conda deactivate

# 删除环境
conda env remove -n myenv

5. 高级用法

5.1 编辑模式安装(开发时使用)

# 以编辑模式安装本地包(修改代码后无需重新安装)
pip install -e ./my_package

# 或者在 setup.py 所在目录执行
pip install -e .

5.2 安装额外依赖

# 安装包的可选依赖
pip install "package_name[extra_feature]"
pip install "package_name[all]"  # 安装所有可选依赖

# 示例:安装 requests 的安全相关依赖
pip install "requests[security]"

5.3 离线安装

# 下载包及其依赖到本地目录
pip download -d ./packages package_name

# 从本地目录离线安装
pip install --no-index --find-links ./packages package_name

6. 最佳实践建议

6.1 项目隔离

  • 始终使用虚拟环境:避免包版本冲突
  • 每个项目独立环境:便于管理和部署

6.2 依赖管理

  • 固定版本号:生产环境使用 == 指定确切版本
  • 区分开发和生产依赖
  • # requirements.txt (生产依赖)
    flask==2.2.2
    gunicorn==20.1.0
    
    # requirements-dev.txt (开发依赖)
    -r requirements.txt
    pytest==7.2.0
    black==22.10.0
    

6.3 安全考虑

  • 定期更新依赖pip list --outdated
  • 检查安全漏洞:使用 safety 或 bandit 工具
    • pip install safety
      safety check
      

6.4 性能优化

  • 使用国内镜像源:大幅提升下载速度
  • 缓存机制:pip 默认会缓存下载的包

7. 常见问题解决

7.1 权限问题

# Linux/macOS 权限错误
sudo pip install package_name  # 不推荐
pip install --user package_name  # 推荐

# Windows 权限错误
# 以管理员身份运行命令提示符
# 或使用 --user 参数

7.2 版本冲突

# 查看包信息
pip show package_name

# 查看依赖树
pip install pipdeptree
pipdeptree

# 解决冲突:创建新虚拟环境重新安装

7.3 编译错误

# 安装编译依赖(Ubuntu/Debian)
sudo apt-get install build-essential python3-dev

# 安装预编译的 wheel 包
pip install --only-binary=all package_name

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐