[buy]适用于Debian/Ubuntu[/buy]

# 安装Python

# 下载Python源码

首先安装需要的依赖

apt-get update
apt-get install build-essential zlib1g-dev libncurses5-dev \
libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev \
libreadline-dev libffi-dev curl libbz2-dev curl -y

然后在Python官方源码仓库里找到需要的版本对应的压缩文件 比如需要安装3.11.4,对应文件为Python-3.11.4.tgz,选择tgz格式就可以 file

复制链接,用wget下载

wget https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz

使用以下命令安装必要的组件

sudo apt-get install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev

# 配置构建选项

解压下载下来的tgz,然后进入目录下执行./configure

tar -xzvf Python-3.11.4.tgz
cd Python-3.11.4/
./configure

可以通过执行./configure --help查看更多构建的配置选项,比如加上--enable-optimizations来执行各种检查,优化最终构建出的Python二进制文件,但会使构建过程变慢

# 编译及安装

执行make来开始构建,可以通过-j参数指定进程数与cpu核心数一致,比如make -j 4

然后执行make altinstall来安装,与make install的区别是它不会覆盖默认的python3二进制文件,而是新建一个,可以通过对应的版本号来运行,比如python3.11

make -j 4
make altinstall
python3.11 --version

# 设置默认版本

如果要将新安装的Python设置为默认版本,也就是通过python直接运行而不是python3.11,那么需要修改对应的软连接

ln -sf /usr/local/bin/python3.11 /usr/bin/python3

Python二进制文件的默认安装路径是/usr/local/bin/Python3.x,使用ln创建符号链接,目标为/usr/bin/python3,-s选项为创建软连接,-f选项为强制(如果目标已经存在则覆盖)

# 使用Poetry进行依赖管理

Poetry 是 Python 中用于依赖管理和打包的工具。它允许您声明项目所依赖的库,并将为您管理(安装/更新)它们。

其实就是conda的一种平替方案,相比于pip+venv,poetry这类管理工具可以管理库之间的依赖,比如pip升级某个库的时候并不会自动把依赖库升级

# 安装Poetry

直接用官方脚本安装

curl -sSL https://install.python-poetry.org | python3 -

python3只是用来执行安装脚本的环境,可以直接用系统默认的python环境

# 找不到distutils.cmd模块

使用apt-get安装

apt-get install python3-distutils

# 添加自动配置环境变量

安装完成后会提示需要自行将poetry的路径添加到PATH中,不然只能每次都输入绝对路径来运行

使用export PATH="/root/.local/bin:$PATH"添加一个PATH环境变量

并且可以直接将这个命令添加到.bashrc文件里,每次ssh连接上后就会自动执行

echo 'export PATH="/root/.local/bin:$PATH"' >> .bashrc

注意.bashrc文件的路径是在ssh登录的用户根目录下,比如root用户是/root/.bashrc

# Poetry的简单使用

# 创建环境

进入项目目录下,使用poetry init创建环境,然后根据提示输入对应的信息 可以直接在这个过程中填写需要的依赖库,也可以直接输入n跳过,直接输入的话默认会使用PyPI,国内连接的速度很慢,所以可以全部留到后面一起设置

创建完成之后,项目文件夹内会出现一个pyproject.toml文件,在这里面可以修改刚才的设置,比如切换源

[[tool.poetry.source]]
# 这里以清华源举例,你也可以使用其他源
name = "tuna-tsinghua"
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
default = false

# 启用环境

输入poetry env use python3.x来自定义需要使用的Python环境

Poetry会自动创建一个虚拟环境,并提示创建的路径

# 添加库

通过poetry add package_name来添加

不过Poetry好像没有pip install -r那样的选项来安装requirements.txt这类文件里面列出的所有库,可以用这个命令安装

poetry add `cat requirements.txt`

# 通过环境执行

使用poetry run命令来通过Poetry的虚拟环境执行

poetry run python main.py