杰瑞科技汇

Linux Python默认安装路径在哪?

下面我将为你详细梳理不同情况下的默认路径,并提供如何查找的方法。

核心要点

  1. 路径不固定:不像Windows有固定的 C:\Python39\,Linux的Python路径非常灵活。
  2. 发行版差异大:不同的发行版(如Ubuntu, CentOS, Arch)有不同的约定。
  3. Python 2 vs Python 3:这是最关键的区别,现代系统默认同时安装Python 2和Python 3,但它们的路径是分开的。

最常见的默认路径(以主流发行版为例)

Debian / Ubuntu (及其衍生版,如Linux Mint)

这是目前最流行的桌面Linux发行版,它的路径非常清晰。

  • Python 3 (推荐使用)

    • 可执行文件: /usr/bin/python3
    • 库和模块: /usr/lib/python3.x/ (/usr/lib/python3.10/)
    • 站点包 (通过 pip 安装的第三方库): /usr/local/lib/python3.x/dist-packages//usr/lib/python3.x/dist-packages/
    • 头文件 (用于C扩展): /usr/include/python3.x/
  • Python 2 (已弃用,但可能仍有)

    • 可执行文件: /usr/bin/python
    • 库和模块: /usr/lib/python2.7/
    • 站点包: /usr/local/lib/python2.7/dist-packages//usr/lib/python2.7/dist-packages/

示例 (以Ubuntu 22.04, Python 3.10为例):

  • python3 -> /usr/bin/python3
  • pip3 -> /usr/bin/pip3
  • python3.10 -> /usr/bin/python3.10

Red Hat / CentOS / Fedora

这些企业级/社区发行版的路径也遵循类似逻辑。

  • Python 3

    • 可执行文件: /usr/bin/python3
    • 库和模块: /usr/lib/python3.x/ (/usr/lib/python3.9/)
    • 站点包: /usr/local/lib/python3.x/site-packages//usr/lib/python3.x/site-packages/
  • Python 2

    • 可执行文件: /usr/bin/python
    • 库和模块: /usr/lib64/python2.7/ (注意是 lib64)
    • 站点包: /usr/local/lib64/python2.7/site-packages//usr/lib64/python2.7/site-packages/

注意:较新的CentOS/RHEL/Fedora版本可能默认不安装Python 2。

Arch Linux

Arch的路径非常简洁,并且通常会创建指向默认Python版本的符号链接。

  • 默认Python版本 (通常是Python 3)

    • 可执行文件: /usr/bin/python (这是一个指向 python3.x 的符号链接)
    • 库和模块: /usr/lib/python3.x/
    • 站点包: /usr/lib/python3.x/site-packages/
  • 明确的Python 3可执行文件

    • 可执行文件: /usr/bin/python3 (也是一个符号链接)

在Arch上,python 命令通常直接指向Python 3,这简化了开发工作。


如何查找你系统上的Python路径?(最可靠的方法)

不要依赖记忆,直接使用命令来查找,这是最准确的方法。

查找Python可执行文件的位置

使用 whichtype 命令。

# 查找 python3 的路径
which python3
# 输出示例: /usr/bin/python3
# 查找 python (可能是Python 2或3) 的路径
which python
# 输出示例: /usr/bin/python
# type 命令会显示更多信息
type python
# 输出示例: python is /usr/bin/python
type python3
# 输出示例: python3 is /usr/bin/python3

查找Python安装的根目录

Python本身提供了一个非常方便的模块来获取它的安装路径。

# 对于 Python 3
python3 -c "import sys; print(sys.prefix)"
# 输出示例: /usr
# 这个 /usr 就是Python 3的主要安装根目录。
# 对于 Python 2 (如果存在)
python -c "import sys; print(sys.prefix)"
# 输出示例: /usr
  • sys.prefix:指向Python的安装主目录(如 /usr)。
  • sys.exec_prefix:通常和 sys.prefix 在系统级安装时是相同的。
  • sys.base_prefix:指向Python解释器的“基地”,对于虚拟化环境(如venv)很有用。

查找标准库和第三方库的位置

# 对于 Python 3
python3 -c "import sys; print(sys.path)"
# 输出示例:
# ['/usr/lib/python310.zip', '/usr/lib/python3.10', '/usr/lib/python3.10/lib-dynload', '/usr/local/lib/python3.10/dist-packages', '/usr/lib/python3/dist-packages']
# 解释:
# 1. /usr/lib/python3.10: 标准库路径
# 2. /usr/local/lib/python3.10/dist-packages: 用户或pip安装的第三方库路径
# 3. /usr/lib/python3/dist-packages: 系统包管理器(如apt)安装的第三方库路径

查找 pip 的安装位置

# 查找 pip3 的可执行文件
which pip3
# 输出示例: /usr/bin/pip3
# 查看pip安装的包在哪里
pip3 show <package_name>
#  pip3 show numpy
# 会输出包的详细信息,包括 Location:
# Location: /usr/local/lib/python3.10/dist-packages

虚拟环境 (Virtual Environment)

这是现代Python开发的最佳实践,它完全改变了路径问题。

当你创建一个虚拟环境时(例如使用 venv),所有通过 pip 安装的包都会被安装到当前项目目录下的一个隔离文件夹中,而不会污染系统级的Python路径。

# 创建一个名为 'my_project_env' 的虚拟环境
python3 -m venv my_project_env
# 激活虚拟环境
source my_project_env/bin/activate
# 激活后,你的命令行提示符会改变
(my_project_env) $
# 在虚拟环境中,python 和 pip 都指向了环境内的版本
which python
# 输出示例: /path/to/your/project/my_project_env/bin/python
which pip
# 输出示例: /path/to/your/project/my_project_env/bin/pip
# 查看虚拟环境中的库路径
python -c "import sys; print(sys.path)"
# 输出会包含虚拟环境内部的路径,如 /path/to/your/project/my_project_env/lib/python3.10/site-packages
项目 Ubuntu/Debian (Python 3) CentOS/RHEL (Python 3) Arch Linux 如何查找
可执行文件 /usr/bin/python3 /usr/bin/python3 /usr/bin/python (软链) which python3
安装根目录 /usr /usr /usr python3 -c "import sys; print(sys.prefix)"
标准库 /usr/lib/python3.x/ /usr/lib/python3.x/ /usr/lib/python3.x/ python3 -c "import sys; print(sys.path)"
第三方库 /usr/local/lib/python3.x/dist-packages/ /usr/local/lib/python3.x/site-packages/ /usr/lib/python3.x/site-packages/ pip3 show <package_name>
虚拟环境 ./my_env/bin/python ./my_env/bin/python ./my_env/bin/python 激活后 which python

最终建议:

  1. 始终使用 python3 来明确调用Python 3版本。
  2. 使用虚拟环境 来管理项目依赖,避免与系统包冲突。
  3. 不确定时,就用命令查找,特别是 whichpython -c "import sys; ..." 这两个组合。
分享:
扫描分享到社交APP
上一篇
下一篇