python安装cxOracle避坑总结不要直接pip install

目录
  • 到官网下载相应版本的驱动进行安装
  • 1.安装过程中的错误:
  • 2.命令行中运行提示找不到指定的模块
  • 3.命令行中运行提示不是有效的win32模块

转自http://rookiefly.cn/detail/69

作死小能手这两天闲着没事,把自己电脑重装了,然而重装过后配置开发环境踩了一些坑,这里把安装cx_oracle遇到的坑记录下来,方便以后查看。

使用pip安装出现的问题

命令:

pip install cx_oracle

错误:

Unable to find 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-py3.5

1.安装过程中的错误:

Python version 3.5 required, which was not found in the registry

解决方法: 网上看了很多种解决方法,很多是说的修改注册表,这种方式我试了,但是没成功,最后找到这个方法,成功了。运行下面这个脚本,不管是Python3.x还是2.x都可以加入注册表中:

# 解决windows平台下找不到python的注册信息问题 (安装oracle驱动会用)
from winreg import *
import sys
# tweak as necessary
version = sys.version[:3]
installpath = sys.prefix
regpath = "SOFTWARE\Python\Pythoncore\{0}\".format(version)
installkey = "InstallPath"
pythonkey = "PythonPath"
pythonpath = "{0};{1}\Lib\;{2}\DLLs\".format(
    installpath, installpath, installpath)

def RegisterPy():
    try:
        reg = OpenKey(HKEY_CURRENT_USER, regpath)
    except EnvironmentError as e:
        try:
            reg = CreateKey(HKEY_CURRENT_USER, regpath)
            SetValue(reg, installkey, REG_SZ, installpath)
            SetValue(reg, pythonkey, REG_SZ, pythonpath)
            CloseKey(reg)
        except:
            print(" Unable to register!")
            return
        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避坑总结不要直接pip install了的详细内容,更多关于python安装cxOracle避坑的资料请关注我们其它相关文章!

(0)

相关推荐

  • python安装cx_Oracle模块常见问题与解决方法

    本文实例讲述了python安装cx_Oracle模块常见问题与解决方法.分享给大家供大家参考,具体如下: 安装或使用cx_Oracle时,需要用到Oracel的链接库,如libclntsh.so.10.1,否则会有各种各样的错误信息. 安装Oracle Instant Client就可得到这个链接库,避免安装几百兆之巨的Oracle Client. 软件下载地址: cx_Oracle的主页:http://cx-oracle.sourceforge.net/ 必需的Oracle链接库的下载地址:h

  • python cx_Oracle模块的安装和使用详细介绍

    python cx_Oracle模块的安装 最近需要写一个数据迁移脚本,将单一Oracle中的数据迁移到MySQL Sharding集群,在linux下安装cx_Oracle感觉还是有一点麻烦的,整理一下,做个总结. 对于Oracle客户端,不只需要安装相应的python模块(这里我用了Oracle官方的python模块--cx_Oracle),还需要安装Oracle Client,一般选择Instant Client就足够了,还需要配置tnsnames.ora(当然也可以简单的通过host:p

  • python用pip install时安装失败的一系列问题及解决方法

    pip简介 pip 是一个现代的,通用的 Python 包管理工具.提供了对 Python 包的查找.下载.安装.卸载的功能 pip是官方推荐的安装和管理Python包的工具,用其来下载和管理Python非常方便.pip最大的优势是它不仅能将我们需要的包下载下来,而且会把相关依赖的包也下载下来.下面简单介绍一下python用pip install时安装失败问题. 昨天想下载python的pillow库,结果遇到各种问题 一些注意事项和问题的解决方案如下: 先检查python是否安装成功命令行直接

  • python安装cx_Oracle和wxPython的方法

    在装这两个的时候出现一些问题,最后总算成功了,记录一下过程 环境:win10 64位系统,python3.7.8 ,pip18 下载地址:这两个地址下载很慢,我的下载多次都失败了,后面用手机下载转电脑的, cx_Oracle: https://pypi.org/project/cx-Oracle/#files wx_Python: https://pypi.org/project/wx_Python/#files 1.安装cx_Oracle: 第一次安装使用的是tar.gz的这个文件,这次安装失

  • Python3自动安装第三方库,跟pip说再见

    目录 1.引言 2.pip手动安装 2.1 在线安装 2.1.1 默认安装 2.1.2 指定版本安装 2.2 离线安装 2.3 设置国内源 2.4 卸载与升级 2.4.1 卸载 2.4.2 升级 3.pip.main自动安装 3.1 pip main 安装 3.2 os安装 4.总结 1.引言 续上一篇<一行代码,导入Python所有库> 不知道是不是都跟小鱼一样,把剩下的时间来学(撩)习(妹). 为了体现小鱼在懒上的造就,小鱼今天再分享一个骚操作: Python自动安装第三方库,彻底解放双手

  • python安装cxOracle避坑总结不要直接pip install

    目录 到官网下载相应版本的驱动进行安装 1.安装过程中的错误: 2.命令行中运行提示找不到指定的模块 3.命令行中运行提示不是有效的win32模块 转自http://rookiefly.cn/detail/69 作死小能手这两天闲着没事,把自己电脑重装了,然而重装过后配置开发环境踩了一些坑,这里把安装cx_oracle遇到的坑记录下来,方便以后查看. 使用pip安装出现的问题 命令: pip install cx_oracle 错误: Unable to find vcvarsall.bat 我

  • Apache安装配置避坑指南

    1.下载解压 httpd-2.4.54-o111p-x64-vs17 2.将解压后的文件夹放置C盘,打开conf文件夹里的httpd.conf,修改Apache安装存放的目录地址 3.修改一些参数,比如为安全起见禁止目录浏览等,并在httpd.conf末尾添加以下3行内容,完成PHP的加载 注意:PHPIniDir必须写在LoadModule下面,否则会出现报错!4.打开CMD命令窗口,输入以下命令进行安装:(1)C:(2)cd C:\Apache24\bin(3)httpd -k instal

  • WIn10+Anaconda环境下安装PyTorch(避坑指南)

    这些天安装 PyTorch,遇到了一些坑,特此总结一下,以免忘记.分享给大家. 首先,安装环境是:操作系统 Win10,已经预先暗转了 Anaconda. 1. 为 PyTorch 创建虚拟环境 关于 Anaconda 的安装步骤这里就忽略不讲了,Win10 下安装 Anaconda 非常简单. 安装 Anaconda 完毕后,我们在安装 PyTorch 之前最好先创建一个 pytorch 的虚拟环境.之所以创建虚拟环境是因为 Python 为不同的项目需求创建不同的虚拟环境非常常见.在实际项目

  • Linux下安装Python3.6及避坑指南

    Python3的安装 1.安装依赖环境 Python3在安装的过程中可能会用到各种依赖库,所以在正式安装Python3之前,需要将这些依赖库先行安装好. yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel 2. 下载Python3源代码 下载Python3的

  • windows下python安装paramiko模块和pycrypto模块(简单三步)

    前言 Python中使用SSH需要用到OpenSSH,而OpenSSH依赖于paramiko模块,而paramiko模块又依赖于pycrypto模块,因此要在python中使用SSH,我们需要先安装pycrypto模块,然后再安装paramiko模块.下面话不多说了,来一起看看详细的介绍: 安装方法 1>首先要确保python安装好,且环境变量设置好.(关于python的安装,本文不再赘述.) 2>安装pycrypto: 到下面这个网站下载编译好的pycrypto(也可以自己到官网下载pycr

  • Python安装配置OpenGL环境的全过程记录

    最近学习计算机图形学,需要使用OpenGL,踩了很多雷,最后终于成功了,总结了一下教程和一些踩雷心得 环境:win10_64位系统.PyCharm(本人使用的是python3.8版本)  错误安装如下(错误演示我使用的是python3.6版本) 打开PyCharm,如下图打开设置 在project untitled中打开python interpreter,如下图所示 有的教程是让你在这里直接搜索OpenGL进行安装,然而这里只能安装32位,所以会导致代码是不报错了,可是运行便会报错(glut错

  • pip install如何指定包的安装路径

    目录 pip install指定安装目录 改变pip的安装路径 dist-packages和site-packages区别 总结 pip install指定安装目录 pip install一般会有默认的安装目录,可以通过python -m site进行查看,当然也可以对默认目录进行修改通过pip install --target=path_name package_name python默认的是系统装的2.7 python3是3.8版本 USER_BASE 和USER_SITE其实就是用户自定义

  • 超详细图解修改pip install默认安装路径的方法

    目录 1. 修改pip install默认安装路径 1.1 查看pip 默认安装位置 1.2 修改pip 默认安装位置 补充:修改pip install的第三方包默认安装路径 总结 1. 修改pip install默认安装路径 一般使用Anaconda时会使用 pip install ### 来安装各类包,但默认安装路径在C盘,极大占用空间,作为强迫症,我们通过以下步骤来修改默认安装路径. 1.1 查看pip 默认安装位置 第一步:通过win菜单,找到Prompt,点击进入 第二步:在cmd里输

  • Python安装lz4-0.10.1遇到的坑

    因为项目的需求,要 lz4.0.10.1 的,因为本机已经有一个 1.1.0 版本的,所以必须先卸掉,然后我差点没疯了(手动微笑) sudo pip uninstall lz4 Uninstalling lz4-1.1.0: /Library/Python/2.7/site-packages/lz4-1.1.0-py2.7.egg-info /Library/Python/2.7/site-packages/lz4/__init__.py /Library/Python/2.7/site-pac

  • python pipeline的用法及避坑点

    说明 1.在使用之前需要在settings中打开. 2.pipeline在settings中键表示位置(即pipeline在项目中的位置可以自定义),值表示离引擎的距离,越近数据越先通过:权重值小的优先执行. 3.当pipeline较多时,process_item的方法必须是returnitem,否则后一个pipeline获得的数据就是None值. pipeline中必须有process_item方法,否则item无法接收和处理. 实例 from sklearn.pipeline import

随机推荐