python安装cxOracle需要注意什么

技术python安装cxOracle需要注意什么这篇文章主要介绍了python安装cxOracle需要注意什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下

本文主要介绍python在安装cxOracle时需要注意的事项,具有一定的参考价值。有兴趣的朋友可以参考一下。希望大家看完这篇文章后收获多多。让边肖带你去了解一下。

pip安装出现问题。

命令:

pip安装cx_oracle

错误:

找不到vcvarsall.bat

我用了最简单最粗暴的方法:因为我的操作系统是win10 64位,所以安装了vs2015。不幸的是,我报告了更多的错误!因为以前不用pip安装就能成功安装,所以放弃了这种安装方式。

到官网下载相应版本的驱动进行安装

我的操作系统是64位,Python版本是3.5.2,所以去https://pypi.python.org/pypi/cx_Oracle/5.2.1下载了对应的版本:CX _ Oracle-5 . 2 . 1-12c . win-amd64-py 3.5

1.安装过程中的错误:

需要Python版本,在注册表中找不到

解决方案:我在网上看到很多解决方案,很多都说要修改注册表。我试过这个方法,但是失败了。最后我找到了这个方法,成功了。运行以下脚本,Python3.x或Python 2.x都可以加入注册表:

#解决在windows平台下找不到python注册信息的问题(安装oracle驱动时会用到)。

fromwinregimport*

importsys

#必要的调整

版本=sys.version[:3]

installpath=sys.prefix

regpath=' SOFTWARE \ Python \ Python core \ { 0 \ } '。格式(版本)

installkey='InstallPath '

pythonkey='PythonPath '

python path=“{ 0 }”;{ 1 } \ Lib \{ 2 } \ DLLs \ '。格式(

installpath,installpath,installpath)

defRegisterPy():

尝试:

reg=OpenKey(HKEY_CURRENT_USER,regpath)

例外环境错误:

尝试:

注册=创建密钥(HKEY _当前_用户,注册路径)

SetValue(reg,installkey,REG_SZ,installpath)

SetValue(reg,pythonkey,REG_SZ,pythonpath)

关闭键(寄存器)

除外:

打印(' Unabletoregister!')

返回

不间断空格

;    print("--- Python", version, "is now registered!")
        return
    if (QueryValue(reg, installkey) == installpath and
        QueryValue(reg, pythonkey) == pythonpath):
        CloseKey(reg)
        print("=== Python", version, "is already registered!")
        return
    CloseKey(reg)
    print(" Unable to register!")
    print("*** You probably have another Python installation!")
if name == "main":
    RegisterPy()

为了防止直接从网页复制运行失败的情况,我把它放到了github上,可以直接下载运行:register.py

2.命令行中运行提示找不到指定的模块

import cx_Oracle

ImportError: DLL load failed: 找不到指定的模块。

这个问题的解决方法网上也说了很多,就是下载instantclient,然后解压将其中的oci.dll拷贝到$Python_Home 或者 $Python_Home\Lib\site-packages 目录下。

运气好了,就成功了,运气不好的话可能还会出现找不到指定的模块这个问题,原因是instantclient的版本和cx_Oracle的版本不一致,拿我安装的来举例,我先下载了instantclient11,而我的 cx_Oracle安装的是cx_Oracle-5.2.1-12c.win-amd64-py3.5,一个是11,一个是12c,这样还是出现了这个找不到指定的模块这个问题。

正确做法是下载instantclient12和cx_Oracle-5.2.1-12c.win-amd64-py3.5。

注意一点是cx_oracle和instantclient的版本不必和Oracle数据库版本一致,只需要cx_Oracle和instantclient版本一致即可。

这样这个问题解决了,但是还有坑等着你!

3.命令行中运行提示不是有效的win32模块

import cx_Oracle

DLL load failed: %1 不是有效的 Win32 应用程序

解决方法:上一步我们讨论了版本问题,这一步该说说操作系统位数的问题了,出现这个问题的原因是操作系统、cx_Oracle和instantclient的位数不同,比如我先就是用的win10 64、cx_Oracle-5.2.1-12c.win-amd64-py3.5和instantclient12c(32位),就报了这个错误。

正确做法是三者都用64或者三者都用32位系统,将instantclient的oci.dll文件放到$Python_Home\Lib\site-packages 目录下即可。

到此,应该可以解决cx_oracle安装过程的所有问题了,祝大家好运!

补充:虽然这样是可以使用cx_Oracle了,但是实际操作数据库的时候可能会出现unable to acquire oracle environment handle这个错误,解决方法是拷贝oci.dll, oraociei12.dll, oraocci12.dll到site-package中。

另外一种方法是为instantclient12c设置环境变量,这样就不用拷贝dll文件了

感谢你能够认真阅读完这篇文章,希望小编分享的“python安装cxOracle需要注意什么”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/60900.html

(0)

相关推荐

  • Android界面设计基础中控件焦点的步骤是什么

    技术Android界面设计基础中控件焦点的步骤是什么这篇文章给大家介绍Android界面设计基础中控件焦点的步骤是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Android设备有多种多样,操纵

    攻略 2021年11月26日
  • openwrt怎样装进u盘好(openwrt扩展系统到u盘)

    技术OpenWRT如何挂接U盘这篇文章将为大家详细讲解有关OpenWRT如何挂接U盘,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 DIR-505 有一个 USB2.0 接口,给

    攻略 2021年12月18日
  • 烤肉食材有哪些,牛肉食材性情介绍有哪些

    技术烤肉食材有哪些,牛肉食材性情介绍有哪些牛肉是中国人的第二大类肉食品烤肉食材有哪些,仅次于猪肉。牛肉的特点是含蛋白质特别多,达到20%左右,比猪肉要 多3.3%,比羊肉要多10%。每100g黄牛肉中约含蛋白质 19.9

    生活 2021年10月26日
  • angular双向绑定实现(angular 双向绑定数据校验)

    技术angular怎么实现双向数据绑定本篇内容介绍了“angular怎么实现双向数据绑定”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,

    攻略 2021年12月21日
  • 驾驶证学习,考驾照都需要看哪些书籍

    技术驾驶证学习,考驾照都需要看哪些书籍考驾照,到驾校报名的时候会发一本学习用的书,可以从那个开始驾驶证学习。第一步要准备的是学习理论知识,备考科目一,同时也顺道把科目四看看。第二步参加驾校组织的技能学习,和教练好好学习。

    生活 2021年10月20日
  • 如何解析Java常量池与字符串intern

    技术如何解析Java常量池与字符串intern这期内容当中小编将会给大家带来有关如何解析Java常量池与字符串intern,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在Java应用程

    攻略 2021年11月23日