centos pyinstaller 打包问题 not found: libpython3.8.so.1.0,

本文介绍在CentOS环境中解决Python打包时遇到的libpython3.8.so.1.0缺失问题,提供了详细的步骤,包括配置参数、重新安装Python、复制库文件等。

问题 :centos中打包出现如下错误的时候,是因为缺少libpython3.8.so.1.0库,需要重新配置一些参数后编译python.

OSError: Python library not found: libpython3.8.so.1.0, libpython3.8mu.so.1.0, libpython3.8m.so.1.0, libpython3.8m.so, libpython3.8.so
    This means your Python installation does not come with proper shared library files.

解决步骤:

(1) 找到python源码解压后的路径

cd /home/ttt/Python-3.8.8 

(2) 配置参数

./configure --prefix=/usr/local/python3 --enable-shared --with-ssl 

(3) 重新安装 python

make &make install

 (4)查找库文件

find / -name libpython3.8.so.1.0

 查到对应的文件如下:  /home/ttt/Python-3.8.8/libpython3.8.so.1.0
  find: ‘/run/user/1000/doc’: 权限不够
   find: ‘/run/user/1000/gvfs’: 权限不够
 

(5)复制库文件到系统目录

cp /home/ttt/Python-3.8.8/libpython3.8.so.1.0 /usr/lib64/

 (6) 重新打包

pyinstaller -F xx.py 

### 解决方案 当遇到 `ImportError: libpython3.8.so.1.0: cannot open shared object file: No such file or directory` 错误时,这通常表明系统无法找到所需的动态链接库文件 `libpython3.8.so.1.0`。以下是详细的解决方案: #### 1. 验证是否存在 `libpython3.8.so.1.0` 首先确认该共享对象文件是否存在于系统中。可以运行以下命令来查找其具体路径: ```bash sudo updatedb locate libpython3.8.so.1.0 ``` 如果未发现任何匹配项,则说明当前环境中确实不存在此文件[^3]。 #### 2. 安装缺失的库文件 对于基于 Debian 或 Ubuntu 的 Linux 发行版,可以通过包管理器安装 Python 动态库支持: ```bash sudo apt-get update sudo apt-get install python3.8-dev ``` 如果是 CentOS/RHEL 系统,则应执行如下操作以获取必要的开发工具链及其依赖关系: ```bash yum groupinstall "Development Tools" yum install python3-devel ``` 上述方法能够确保目标平台上具备完整的编译环境以及对应版本的 Python 库头文件和共享库[^1]。 #### 3. 设置正确的加载路径 (LD_LIBRARY_PATH) 即使存在所需 `.so` 文件但仍然报错的情况可能是由于动态连接器未能识别到它们的位置所致。此时可通过调整环境变量的方式让程序知道去哪里寻找这些资源。例如假设已知实际存放地址为 `/usr/local/lib/python3.8/config-3.8-x86_64-linux-gnu/`, 则需设置如下所示: ```bash export LD_LIBRARY_PATH=/usr/local/lib/python3.8/config-3.8-x86_64-linux-gnu/:$LD_LIBRARY_PATH ``` 或者更通用的做法是从 Conda 虚拟环境下复制特定于某个解释器实例的相关部分至全局可访问区域并相应修改配置[^4]: ```bash cp /path/to/source/libpython*.so* /usr/lib/ ldconfig ``` 完成以上步骤之后再次尝试启动应用程序应该不会再遭遇类似的导入异常状况了。 ### 注意事项 - 如果使用的是 Anaconda 创建出来的独立虚拟空间,请特别留意不要混淆不同隔离单元之间的设定值。 - 对生产服务器做更改前最好先备份原始状态以便回滚恢复。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值