sysconfig
模块Python 的 sysconfig
模块可以提供安装路径的详细信息。
打开终端并运行Python 3.9:
/usr/bin/python3.9
在Python解释器中运行以下代码:
import sysconfig
for key, value in sysconfig.get_paths().items():
print(f"{key}: {value}")
这个命令会输出Python 3.9安装的各种路径信息。
Python 3.9.5 (default, Nov 23 2021, 15:27:38)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sysconfig
>>> for key, value in sysconfig.get_paths().items():
... print(f"{key}: {value}")
...
stdlib: /usr/lib/python3.9
platstdlib: /usr/lib/python3.9
purelib: /usr/lib/python3.9/site-packages
platlib: /usr/lib/python3.9/site-packages
include: /usr/include/python3.9
platinclude: /usr/include/python3.9
scripts: /usr/bin
data: /usr
上述输出来自 sysconfig.get_paths()
,它提供了Python安装过程中各种重要路径的详细信息。每个键值对代表一个特定的路径配置。以下是对每个键的解释:
stdlib: /usr/lib/python3.9
os
、sys
、math
等模块。platstdlib: /usr/lib/python3.9
stdlib
相同。它包括特定平台的库和模块。purelib: /usr/lib/python3.9/site-packages
pip
等工具安装的第三方纯Python包会存放在这个目录下。platlib: /usr/lib/python3.9/site-packages
include: /usr/include/python3.9
platinclude: /usr/include/python3.9
include
相同。scripts: /usr/bin
python3.9
可执行文件通常位于这个目录下。data: /usr
sys
模块sys
模块也可以提供一些有用的路径信息。
打开终端并运行Python 3.9:
/usr/bin/python3.9
在Python解释器中运行以下代码:
import sys
print(sys.executable) # Python解释器的路径
print(sys.prefix) # Python安装的根路径
print(sys.exec_prefix) # Python可执行文件的安装路径
print(sys.path) # 模块搜索路径列表
distutils.sysconfig
模块distutils.sysconfig
模块也可以用来获取Python的安装路径。
打开终端并运行Python 3.9:
/usr/bin/python3.9
在Python解释器中运行以下代码:
from distutils.sysconfig import get_python_lib, get_python_inc
print("Library Path:", get_python_lib())
print("Include Path:", get_python_inc())
pip show
如果你使用 pip
安装了某些包,可以通过 pip show
来查看某个包的安装路径,这也可以帮助你找到Python的库路径。
pip show some-package
将 some-package
替换为已安装的包名称。这个命令会显示包的详细信息,包括它的安装路径。
这取决于系统的配置、用户安装的方式以及具体的Python版本。以下是常见的Python安装路径及其详细解释:
系统自带的Python版本,通常位于以下路径:
/usr/bin/python 或 /usr/bin/pythonX.X
/usr/lib/pythonX.X
用户通过各种方式(如编译源码、使用包管理工具等)安装的Python,可能会位于不同的路径:
/usr/local/bin/pythonX.X
/usr/local/lib/pythonX.X
当以非管理员权限(即非 root 用户)安装 Python 包时,通常会将这些包安装到用户的主目录中,以避免影响系统级的 Python 环境。这些包通常位于~/.local/lib/python/site-packages/
使用 pip install 命令时,如果指定了 --user 选项,包将安装到用户级别的目录中,而不是系统级别的目录
Python 可能通过环境变量如 PYTHONUSERBASE 来确定用户级的安装路径。如果 PYTHONUSERBASE 设置为用户的主目录,这会导致包安装到 ~/.local/lib/python/site-packages 中。
用户创建的Python虚拟环境(virtualenv)有自己独立的解释器和库路径:
/home/username/.virtualenvs/env_name/bin/python
/home/username/.virtualenvs/env_name/lib/pythonX.X/site-packages
使用Anaconda或Miniconda安装的Python环境有自己独立的路径:
/home/username/anaconda3/bin/python
/home/username/anaconda3/lib/pythonX.X
/home/username/anaconda3/envs/env_name/bin/python
/home/username/anaconda3/envs/env_name/lib/pythonX.X
使用Pyenv管理的Python版本和环境路径:
/home/username/.pyenv/versions/X.X.X/bin/python
/home/username/.pyenv/versions/X.X.X/lib/pythonX.X
/usr/bin/python:
/usr/bin/python
,而Python 3.x可能是/usr/bin/python3
。/usr/local/bin/pythonX.X:
虚拟环境路径:
Anaconda/Miniconda路径:
Pyenv路径:
如果系统无法联网并且只能使用 apt
,那么可以通过下载并手动安装依赖包来实现。以下是各个包的详细解释,以及离线安装的一般方法。
sudo apt install -y wget build-essential zlib1g-dev libffi-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev libncurses5-dev libgdbm-dev libnss3-dev liblzma-dev uuid-dev
gcc
编译器、make
等。Python 源代码需要用 gcc
来编译。zlib
模块用于处理 .zip
压缩文件。ctypes
和 cffi
模块需要用到它。ssl
和 https
功能需要依赖 OpenSSL。bz2
模块用于处理 .bz2
压缩文件。sqlite3
模块用于数据库操作。curses
模块依赖此库。dbm
模块需要此库来管理键值存储。lzma
模块需要它来处理 .xz
文件。uuid
模块用于生成唯一标识符。由于无法联网,可以在有网络的计算机上下载所需的 .deb
包文件,并传输到离线计算机上进行安装。
.deb
包在另一台有网络的计算机上,使用 apt
命令下载依赖包的 .deb
文件。
sudo apt update
mkdir python-deps
cd python-deps
# 下载每个所需依赖包的 .deb 文件到当前目录
apt download wget build-essential zlib1g-dev libffi-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev libncurses5-dev libgdbm-dev libnss3-dev liblzma-dev uuid-dev
此命令将会下载这些包和它们的所有依赖项到当前目录中。
.deb
文件到离线系统将下载的 python-deps
目录中的所有 .deb
文件拷贝到离线系统中,例如通过 USB 驱动器或其他方式。
在离线系统中,进入包含 .deb
文件的目录,然后使用以下命令安装这些包:
cd /path/to/python-deps
sudo dpkg -i *.deb
dpkg -i
命令会尝试逐个安装这些 .deb
包,如果有依赖关系,可能需要重复运行 dpkg -i *.deb
直到所有依赖项都被正确安装。
不通过 deadsnakes PPA
安装 Python 3.10,可以从源代码手动编译和安装。以下是详细步骤:
在编译 Python 之前,需要先安装一些必要的依赖:
sudo apt update
sudo apt install -y wget build-essential zlib1g-dev libffi-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev libncurses5-dev libgdbm-dev libnss3-dev liblzma-dev uuid-dev
进入 /usr/src
目录,并下载 Python 3.10 的源码包:
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz
解压下载的 Python-3.10.15.tgz
文件:
sudo tar -xzf Python-3.10.15.tgz
cd Python-3.10.15
在开始编译之前,需要配置编译选项以确保 Python 能够正常运行:
sudo ./configure --enable-optimizations
--enable-optimizations
选项可以对 Python 进行性能优化,使得编译后的 Python 程序运行更高效。使用 make
命令编译 Python 源代码,-j
后面的数字指定使用多少个 CPU 内核来加速编译过程。可以根据您的 CPU 核心数量来选择,例如,如果您的 CPU 有 4 核,可以使用 -j 4
:
sudo make -j 4
sudo make altinstall
注意:使用
make altinstall
而不是make install
,以避免覆盖系统默认的python3
可执行文件。
如果没有自动安装 pip
,可以手动安装:
sudo apt install -y wget
wget https://bootstrap.pypa.io/get-pip.py
sudo python3.10 get-pip.py
希望让 python3
命令默认使用 Python 3.10,可以创建一个符号链接(可选):
sudo ln -s /usr/local/bin/python3.10 /usr/bin/python3
centeros按照python的命令如下
2630 tar -xzf Python-3.10.15.tgz
2631 cd Python-3.10.15
2632 ./configure
2633 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
2634 sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
2635 ./configure
2637 make&&make install
2638 sudo make && sudo make install
2639 whereis python3