安装cx_Oracle报错python version 3.4 required, which was not found in the registry

本文解决了cx_Oracle安装过程中提示未找到Python 3.4版本的问题。通过修改注册表路径,使安装程序能正确检测到已安装的Python版本。

在安装https://pypi.python.org/pypi/cx_Oracle/5.2.1#downloads 下载了cx_Oracle,安装时提示python version 3.4 required, which was not found in the registry,按照字面的理解,一个是在注册表中没有找到python相关的信息,如果是机器上安装了多个版本的python,那意思就是没有找到3.4版本的信息。
在网上搜了一下,发现没有针对cx_Oracle的,有几个都是说的numpy,但是想来原来也差不多,原因是cx_Oracle包在安装时,检测的是路径是HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.4 ,安装程序没有检测到注册表信息的原因,一个可能的原因是python在安装的时候,写的注册表位置和这个路径不一样,比如在安装的时候,选择的是所有用户而不是当前用户,那么注册表就会写到HKEY_LOCAL_MACHINE下。当然,你可以卸载python重新安装一次,但是还有一种方法,就是在HKEY_CURRENT_USER下添加相应的信息。具体的方法就是从其他你能找找的python路径下,导出注册表信息,然后手段修改路径后,再导入即可。已我的机器上的为例:
1、找到python注册表信息:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python
2、右键Python文件夹,导出,命名为CURRENT_USER_30.4.reg
3、用记事本打开CURRENT_USER_30.4.reg。HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node替换成HKEY_CURRENT_USER\SOFTWARE。
4、双击CURRENT_USER_30.4.reg,将注册表信息导入即可




cx_Oracle_win32位安装包:
https://pypi.python.org/packages/9f/3f/dc6f5a80925145c12b8fc5f4a908fa2dd66a3df9df33562787ea979428fc/cx_Oracle-5.2.1-11g.win32-py3.4.exe#md5=9313882486d379c118123e4445a1278e

cx_Oracle_win64位安装包:
https://pypi.python.org/packages/0b/eb/0d94859f329f31df1fce95f12afb8b0b78f200a9e556773f5a8786732f97/cx_Oracle-5.2.1-11g.win-amd64-py3.4.exe#md5=840740159ab0631ca8649d1dbadd7f0b

该问题通常出现在使用 PaddlePaddle 时,系统中缺少 `libstdc++.so.6` 所需的 GLIBCXX 版本(如 `GLIBCXX_3.4.30`)[^3]。以下是几种可行的解决方法: ### 方法一:升级 GCC 编译器 1. **安装新版 GCC** 使用系统的包管理工具安装较新的 GCC 版本(例如 GCC 9 或更高),它会附带更新版本的 `libstdc++` 库。 ```bash sudo yum install gcc-c++ # CentOS/RHEL ``` 或者 ```bash sudo apt-get install g++-9 # Ubuntu/Debian ``` 2. **验证 GCC 安装** 确认 GCC 是否成功安装并查看其版本: ```bash g++ --version ``` 3. **更新动态链接库路径** 设置 `LD_LIBRARY_PATH` 指向新安装的 `libstdc++` 路径: ```bash export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH ``` ### 方法二:手动安装或替换 `libstdc++` 库 1. **下载 GCC 源码包** 从 [GNU 官方网站](https://gcc.gnu.org/) 下载所需版本的源码。 2. **编译安装 GCC 并提取 libstdc++** 配置并编译 GCC,只安装 `libstdc++` 库部分: ```bash ./contrib/download_prerequisites mkdir build && cd build ../configure --enable-languages=c,c++ make sudo make install ``` 3. **替换系统中的 `libstdc++.so.6`** 备份原有库文件后,将新生成的 `libstdc++.so.6` 替换到 `/usr/lib64/` 或 `/usr/lib/x86_64-linux-gnu/` 目录下。 ### 方法三:使用 Conda 创建独立环境 如果使用的是 Miniconda 或 Anaconda,可以创建一个隔离的虚拟环境,并安装兼容版本的依赖: ```bash conda create -n paddle_env python=3.8 conda activate paddle_env conda install -c conda-forge libgcc-ng ``` ### 方法四:检查当前 `libstdc++` 支持的 GLIBCXX 版本 运行以下命令来确认当前系统支持哪些 `GLIBCXX` 版本: ```bash strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX ``` 确保输出包含 `GLIBCXX_3.4.30` 或更高的版本。 ### 方法五:通过 Docker 容器化部署 如果上述方法难以实现,可以考虑使用官方提供的 PaddlePaddle Docker 镜像,避免本地依赖冲突: ```bash docker pull registry.baidubce.com/paddlepaddle/paddle:latest-gpu docker run -it registry.baidubce.com/paddlepaddle/paddle:latest-gpu /bin/bash ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周小科

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值