安装不同版本的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命令退出虚拟环境

 

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

 

posted @ 2025-07-07 16:35  zmm521  阅读(78)  评论(0)    收藏  举报