上位机知识篇---Linux中pythonpipapt
文章目录
- 前言
- 一、相关文件和目录
- 1. Python
- 系统Python路径
- /usr/bin/python2或/usr/bin/python3
- /usr/lib/pythonX.Y/
- /usr/local/lib/pythonX.Y/
- 用户级Python路径
- ~/.local/lib/pythonX.Y/site-packages/
- 2. pip
- 可执行文件
- /usr/bin/pip或者/usr/bin/pip
- 用户级安装路径
- 配置文件
- 全局配置
- 用户配置
- 缓存目录
- 3. apt
- 配置文件
- /etc/apt/sources.list
- /etc/apt/sources.list.d/
- 缓存和状态文件
- /var/lib/apt/lists/
- /var/cache/apt/archives/
- /var/lib/dpkg/status
- 二、常见操作
- 1. Python操作
- 切换Python版本
- 运行Python脚本
- 2. pip操作
- 安装包
- 卸载包
- 导出/导入依赖
- 虚拟环境
- 3. apt操作
- 更新软件源
- 安装软件包
- 卸载软件包
- 清理缓存
- 三、pip 与 apt 安装的区别
- 四、最佳实践
- 优先使用系统包(apt)
- 使用pip的场景
- 避免混用apt和pip
- 用户级安装
- 虚拟环境隔离
- 五、常见问题
- 1. 权限问题
- 2. 版本冲突
- 3. 清理pip缓存
前言
在Linux系统中,Python、pip 和 apt 是开发和管理工具链的重要组成部分。以下是它们的相关文件、操作及区别的详细说明。
一、相关文件和目录
1. Python
系统Python路径
/usr/bin/python2或/usr/bin/python3
/usr/bin/python2 或 /usr/bin/python3:系统默认的Python解释器。
/usr/lib/pythonX.Y/
/usr/lib/pythonX.Y/:系统Python的标准库(X.Y为版本号,如3.8)。
/usr/local/lib/pythonX.Y/
/usr/local/lib/pythonX.Y/:用户通过源码编译安装的Python库。
用户级Python路径
~/.local/lib/pythonX.Y/site-packages/
~/.local/lib/pythonX.Y/site-packages/:用户通过pip install --user安装的第三方包。
2. pip
可执行文件
/usr/bin/pip或者/usr/bin/pip
/usr/bin/pip 或 /usr/bin/pip3:系统级pip工具。
用户级安装路径
用户级安装路径:~/.local/bin/pip(使用–user选项安装)。
配置文件
全局配置
全局配置:/etc/pip.conf
用户配置
用户配置:~/.config/pip/pip.conf
缓存目录
~/.cache/pip/:存储下载的包和临时文件。
3. apt
配置文件
/etc/apt/sources.list
/etc/apt/sources.list:软件源列表。
/etc/apt/sources.list.d/
/etc/apt/sources.list.d/:第三方源的附加配置文件目录。
缓存和状态文件
/var/lib/apt/lists/
/var/lib/apt/lists/:存储从软件源下载的元数据。
/var/cache/apt/archives/
/var/cache/apt/archives/:存储下载的.deb安装包。
/var/lib/dpkg/status
/var/lib/dpkg/status:已安装软件包的数据库。
二、常见操作
1. Python操作
切换Python版本
sudo update-alternatives --config python3
运行Python脚本
python3 script.py
2. pip操作
安装包
pip install package_name # 系统级安装(需sudo)
pip install --user package_name # 用户级安装
卸载包
pip uninstall package_name
导出/导入依赖
pip freeze > requirements.txt # 导出依赖
pip install -r requirements.txt # 安装依赖
虚拟环境
python3 -m venv myenv # 创建虚拟环境
source myenv/bin/activate # 激活环境
3. apt操作
更新软件源
sudo apt update
安装软件包
sudo apt install python3-pip # 安装Python包
卸载软件包
sudo apt remove package_name
清理缓存
sudo apt clean # 删除所有下载的.deb文件
sudo apt autoclean # 删除旧版本的.deb文件
三、pip 与 apt 安装的区别
特性 pip apt
包来源 Python Package Index (PyPI) 系统软件源(如Ubuntu/Debian仓库)
包类型 Python专用包(纯Python或二进制轮子) 系统级软件包(包括Python库、工具等)
版本更新 通常提供最新版本 版本较旧(为系统稳定性优化)
依赖管理 自动处理Python依赖 依赖由系统包管理器处理
安装位置 用户级或虚拟环境(避免污染系统) 全局安装到系统目录
权限要求 用户级无需sudo 必须使用sudo
适用场景 Python项目开发、第三方库 系统工具、底层库(如python3-dev)
冲突风险 可能与系统包冲突 与系统其他组件兼容性更好
四、最佳实践
优先使用系统包(apt)
安装系统级工具(如python3-dev, python3-pip)。
确保系统稳定性,避免版本冲突。
使用pip的场景
安装PyPI独有的库(如numpy, requests)。
开发Python项目时,优先在虚拟环境中使用pip。
避免混用apt和pip
- 不要通过apt和pip同时安装同一个包(如scipy),可能导致版本混乱。
- 若必须混用,优先用apt安装底层依赖(如libjpeg),用pip安装Python绑定。
用户级安装
pip install --user package_name # 无需sudo,安装到用户目录
虚拟环境隔离
python3 -m venv myproject # 创建虚拟环境
source myproject/bin/activate # 激活后使用pip安装
五、常见问题
1. 权限问题
错误:Permission denied 使用pip install未加–user或sudo。
解决:使用–user或在虚拟环境中安装。
2. 版本冲突
错误:apt和pip安装的同一包版本不同。
解决:优先卸载冲突包,统一使用一种工具。
3. 清理pip缓存
命令:
pip cache purge