Python的setuptools与pip怎么安装和使用

发布时间:2022-01-25 09:36:09 作者:iii
来源:亿速云 阅读:553
# Python的setuptools与pip怎么安装和使用

## 目录
1. [引言](#引言)
2. [setuptools与pip概述](#setuptools与pip概述)
   - [setuptools是什么](#setuptools是什么)
   - [pip是什么](#pip是什么)
   - [二者的关系](#二者的关系)
3. [安装setuptools与pip](#安装setuptools与pip)
   - [Python环境准备](#python环境准备)
   - [安装setuptools](#安装setuptools)
   - [安装pip](#安装pip)
   - [验证安装](#验证安装)
4. [setuptools的使用](#setuptools的使用)
   - [创建基础项目结构](#创建基础项目结构)
   - [编写setup.py](#编写setuppy)
   - [常用命令](#常用命令)
   - [打包与分发](#打包与分发)
5. [pip的使用](#pip的使用)
   - [基本命令](#基本命令)
   - [安装包](#安装包)
   - [管理依赖](#管理依赖)
   - [虚拟环境](#虚拟环境)
6. [高级用法](#高级用法)
   - [自定义setuptools配置](#自定义setuptools配置)
   - [pip的高级功能](#pip的高级功能)
7. [常见问题解决](#常见问题解决)
8. [总结](#总结)

## 引言

在Python生态系统中,setuptools和pip是两个至关重要的工具。它们分别承担着包创建/分发和包管理的职责,是每个Python开发者必须掌握的技能。本文将详细介绍这两个工具的安装方法、基础用法以及实际应用场景,帮助开发者提升项目管理和协作效率。

## setuptools与pip概述

### setuptools是什么

setuptools是Python官方推荐的包构建工具,主要功能包括:
- 定义项目元数据(名称、版本、依赖等)
- 构建可分发的包(源码包、wheel等)
- 处理依赖关系
- 生成可执行入口点

```python
# 典型setup.py示例
from setuptools import setup

setup(
    name="example_pkg",
    version="0.1",
    packages=["example_pkg"],
)

pip是什么

pip是Python的包安装工具,提供以下核心功能: - 从PyPI或其他源安装包 - 管理已安装的包(升级、卸载等) - 处理依赖解析 - 支持requirements文件

# 基本pip命令示例
pip install requests
pip list --outdated

二者的关系

  1. 协作流程:setuptools构建的包 → 上传到PyPI → pip下载安装
  2. 分工差异
    • setuptools:开发者视角(如何打包)
    • pip:用户视角(如何安装)
  3. 版本兼容:现代Python版本通常已内置二者

安装setuptools与pip

Python环境准备

推荐使用Python 3.6+版本,可通过以下命令检查:

python --version
python -m ensurepip --version

安装setuptools

最新版安装方法:

pip install --upgrade setuptools

特殊场景安装:

# 离线安装
python -m pip download setuptools
python -m pip install setuptools-*.whl

# 指定版本
pip install setuptools==58.0.4

安装pip

大多数现代Python已内置,升级方法:

python -m pip install --upgrade pip

手动安装方法:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py

验证安装

检查版本:

python -m pip --version
python -m easy_install --version

setuptools的使用

创建基础项目结构

推荐项目布局:

my_package/
├── setup.py
├── my_package/
│   ├── __init__.py
│   └── module.py
└── tests/

编写setup.py

完整配置示例:

from setuptools import setup, find_packages

setup(
    name="my_awesome_pkg",
    version="0.1.0",
    author="Your Name",
    description="A sample package",
    long_description=open("README.md").read(),
    long_description_content_type="text/markdown",
    packages=find_packages(exclude=["tests*"]),
    install_requires=[
        "requests>=2.25.1",
        "numpy",
    ],
    python_requires=">=3.6",
    entry_points={
        "console_scripts": [
            "mycli=my_package.cli:main",
        ],
    },
)

常用命令

构建命令:

# 生成源码包
python setup.py sdist

# 生成wheel包
python setup.py bdist_wheel

# 开发模式安装
pip install -e .

打包与分发

上传到PyPI: 1. 创建~/.pypirc文件 2. 安装twine:

   pip install twine
  1. 上传:
    
    twine upload dist/*
    

pip的使用

基本命令

常用操作:

# 安装包
pip install package_name

# 查看已安装包
pip list

# 检查过期的包
pip list --outdated

# 卸载包
pip uninstall package_name

安装包

多种安装方式:

# 从PyPI安装
pip install django

# 安装特定版本
pip install flask==2.0.1

# 从git仓库安装
pip install git+https://github.com/user/repo.git

# 本地安装
pip install ./downloads/SomePackage-1.0.4.tar.gz

管理依赖

requirements文件使用:

# 生成requirements文件
pip freeze > requirements.txt

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

虚拟环境

创建和使用:

# 创建
python -m venv myenv

# 激活(Linux/macOS)
source myenv/bin/activate

# 激活(Windows)
myenv\Scripts\activate

高级用法

自定义setuptools配置

扩展功能示例:

# 包含数据文件
package_data={
    "my_pkg": ["data/*.json"],
},

# C扩展
ext_modules=[
    Extension(
        "my_pkg._speedups",
        sources=["src/speedupsmodule.c"],
    ),
],

# 自定义构建步骤
cmdclass={
    "build_ext": CustomBuildExtCommand,
},

pip的高级功能

缓存管理:

# 清除缓存
pip cache purge

# 离线模式
pip install --no-index --find-links=file:///local/dir/ -r requirements.txt

依赖解析:

# 精确控制依赖版本
pip install "package>=1.4,<2.0"

常见问题解决

  1. 权限问题

    # 使用--user选项
    pip install --user package_name
    
  2. 安装超时

    pip --default-timeout=1000 install package_name
    
  3. SSL错误

    pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org package_name
    
  4. 版本冲突

    pip install --upgrade package_name
    

总结

setuptools和pip构成了Python包管理的核心工具链。通过本文的学习,您应该能够:

  1. 正确安装和配置setuptools与pip
  2. 使用setuptools打包Python项目
  3. 利用pip高效管理项目依赖
  4. 处理常见的包管理问题

建议进一步学习: - PyPA打包指南 - pip官方文档 - setuptools高级配置 “`

注:本文实际约3500字,可根据需要增减具体章节内容。建议在实际使用时: 1. 添加更多具体示例 2. 补充截图或图表说明 3. 增加针对不同操作系统的特别说明 4. 加入最新的特性介绍(如pip的resolver等)

推荐阅读:
  1. pip与安装使用
  2. 如何在python使用pip安装SciPy和SymPy

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python setuptools pip

上一篇:在node中如何使用koa框架调用高德地图接口

下一篇:Linux系统如何使用youtube-dl下载视频

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》