[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格式就可以 
复制链接,用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