在 Ubuntu 里找 Python 安装包,难点往往不在“有没有装”,而在“这次到底是通过哪种方式装的”。系统自带解释器、APT、pip、源码编译和虚拟环境,分别会把可执行文件和包放进不同目录。顺着安装方式去判断,再配合几条查询命令,你就能快速确认当前环境实际在用哪一套路径。
Ubuntu 系统自带 Python 放在哪
Ubuntu 自带的 Python 3 可执行文件通常位于 /usr/bin/python3,它很多时候只是一个软链接,实际会指向具体版本,例如 /usr/bin/python3.10。
与系统 Python 配套的标准库,以及通过系统包管理器安装的多数 Python 第三方包,常见位置是:
/usr/lib/python3/dist-packages/
这类路径属于系统默认搜索范围,通常不需要额外配置,解释器就能直接识别。
通过 APT 安装的 Python 包路径
如果你是用下面这种方式安装:
sudo apt install python3-
那么对应的包通常会被放到系统级目录:
/usr/lib/python3/dist-packages/
这类包的特点是对所有用户可用,并且由 Ubuntu 的包管理器统一维护。对于依赖系统稳定性的环境来说,这是最容易管理的一种安装方式。
pip 安装时,用户级和系统级路径有什么区别
用 pip 安装时,路径取决于你是以普通用户执行,还是带 sudo 执行。
普通用户安装:--user 路径
更推荐的做法是:
pip install --user
这样安装的包通常会进入当前用户目录:
~/.local/lib/python3.x/site-packages/
它只影响当前用户,不会改动系统 Python 环境,日常使用更稳妥。
使用 sudo 安装:系统级路径
如果你执行的是:
sudo pip install
包通常会安装到:
/usr/local/lib/python3.x/dist-packages/
这类安装会影响所有用户,也更容易和系统通过 APT 管理的 Python 包产生冲突,因此常规情况下并不推荐这样做。
源码编译安装时,路径由什么决定
如果 Python 是通过源码编译安装的,最终路径取决于编译配置。
默认情况下,可执行文件常见位置是:
/usr/local/bin/python3.x
对应的库文件和安装包目录常见位置是:
/usr/local/lib/python3.x/site-packages/
如果编译时使用了 ./configure --prefix 指定安装目录,那么这些路径会跟着改变。也就是说,源码安装没有单一固定位置,应该优先看当时的 prefix 配置。
另外,源码安装后有时还需要手动调整环境变量,才能让系统全局优先找到这套 Python。
虚拟环境中的包为什么最容易定位
使用 venv 或 virtualenv 创建虚拟环境后,包会被隔离在项目目录内部,常见位置是:
<项目目录>/venv/lib/python3.x/site-packages/
这种结构的好处是非常直接:项目依赖跟着项目走,不和系统 Python、其他项目环境混在一起。对现代 Python 开发来说,这通常也是最推荐的做法。
怎么确认当前 Python 和包的实际路径
如果你不确定系统当前使用的是哪套 Python,或者某个包究竟装到了哪里,可以直接用命令查询。

# 查找Python可执行文件路径
which python3
# 或 which python(系统默认Python 2.x)
# 查看Python解释器的sys.path(包含所有包搜索路径)
python3 -c "import sys; print(sys.path)"
# 查找特定包的安装路径(如requests包)
python3 -c "import requests; print(requests.__file__)"
其中,which python3 适合先看当前命中的解释器;sys.path 可以帮助你判断解释器会去哪些目录找包;而 requests.__file__ 这类方式,则适合精确确认某个包的实际落点。
一眼看懂 Ubuntu 里常见的 Python 包位置
如果只想先建立一个快速判断框架,可以按下面这组对应关系理解:
- 系统自带 Python 可执行文件:
/usr/bin/python3 - APT 安装的 Python 包:
/usr/lib/python3/dist-packages/ pip install --user安装的包:~/.local/lib/python3.x/site-packages/sudo pip install安装的包:/usr/local/lib/python3.x/dist-packages/- 源码编译安装的 Python:常见于
/usr/local/bin/python3.x和/usr/local/lib/python3.x/site-packages/ - 虚拟环境中的包:
<项目目录>/venv/lib/python3.x/site-packages/
实际排查时,先分清安装方式,再看解释器路径和 sys.path,通常很快就能定位问题。







