安装不同版本的python包 && python3.6编译安装后使用时报错ImportError:libpython3.6m.so.1.0:cannot open shared object file:No such file or directory
find / -name "libpython3.6m.so.1.0"
找得到的话,
# 进入Python源码编译目录
cd /path/to/Python-3.6.x
# 复制库文件到系统目录
sudo cp libpython3.6m.so.1.0 /usr/lib64/
sudo cp libpython3.6m.so.1.0 /usr/local/lib/
# 确认动态库加载
ldd $(which python3.6) | grep libpython3.6m

找不到的话,重新编译时添加--enable-shared和--prefix参数:
./configure --enable-shared --prefix=/usr/local/python3.6
make && sudo make install
/usr/local/python3.6/lib/会生成,再执行复制库文件到系统目录并确认动态库加载
路径隔离安装不同版本的python包
# 1. 下载源码包 (以Python 3.8和3.11为例)
wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz
wget https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz
# 2. 解压并编译安装到独立目录
tar -zxvf Python-3.6.8.tgz
cd Python-3.6.8
./configure --prefix=/usr/local/python3.6 # 关键:指定独立路径:ml-citation{ref="2,6" data="citationList"}
make && sudo make install
cd ..
tar -zxvf Python-3.11.4.tgz
cd Python-3.11.4
./configure --prefix=/usr/local/python3.11 # 路径隔离:ml-citation{ref="11,22" data="citationList"}
make && sudo make install
# 3. 创建版本专属命令别名
sudo ln -s /usr/local/python3.6/bin/python3.6 /usr/bin/python36
sudo ln -s /usr/local/python3.11/bin/python3.11 /usr/bin/python311
# 离线安装依赖时
python36 -m pip install --no-index --find-link=pkg_path paramiko --target=/usr/local/python3.6/lib/python3.6/site-packages
# 虚拟环境隔离
# 创建虚拟环境 kk_env
python36 -m venv kk_env
#激活,source执行后,执行pip就自动使用环境内的pip
source env/bin/activate

# deactivate命令退出虚拟环境


# 虚拟环境的依赖安装路径


浙公网安备 33010602011771号