在Windows上easy_install cx_Oracle(python包)

Sil*_*Ray 13 python windows cx-oracle easy-install

所以我发现帮助安装cx_Oracle但仍然卡住了.我从oracle下载了最新的instantclient,并将ORACLE_HOME设置为解压缩文件的位置(直接和ORACLE_HOME值与文件之间的bin文件夹),但easy_install在运行setup.py时弹出错误说它可以'找到Oracle包含文件.我注意到文件夹中只有11g dll,我是否需要所有3个驱动程序才能完成设置?如果是这样,我在哪里获得它们?

Chr*_*tts 18

老实说,从一个二进制安装程序安装cx_Oracle 比从源安装更容易.

HOWTO for*nix:

  1. 浏览到Instant Client for Linux x86下载页面.

  2. 下载适合您的体系结构(32或64位)的基本,sqlplus和sdk软件包的最新版本:

    • oracle-instantclient<version>-basic-<version_full>.<arch>.rpm
    • oracle-instantclient<version>-sqlplus-<version_full>.<arch>.rpm
    • oracle-instantclient<version>-devel-<version_full>.<arch>.rpm.
  3. 使用外星人安装RPM.例如,在撰写本文时:

    $ sudo alien -i oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
    
    Run Code Online (Sandbox Code Playgroud)
  4. 添加必要的环境变量(我个人确实把它放在/etc/environmentlogoff/back中以重新加载env):

    ORACLE_HOME=/usr/lib/oracle/<version>/client64/lib/
    LD_LIBRARY_PATH=/usr/lib/oracle/<version>/client64/lib/
    
    Run Code Online (Sandbox Code Playgroud)
  5. 修复oracle的包括:

    $ sudo ln -s /usr/include/oracle/<version>/client $ORACLE_HOME/include  # for 32bits arch, OR
    $ sudo ln -s /usr/include/oracle/<version>/client64 $ORACLE_HOME/include  # for 64bits arch
    
    Run Code Online (Sandbox Code Playgroud)
  6. 创建/etc/ld.so.conf.d/oracle-instantclient<version>-basic.conf/etc/ld.so.conf.d/oracle.conf(对于更新版本,至少从12.1开始)包含:

      /lib  
      /usr/lib/oracle/<version>/client/lib  ; for 32bits arch, OR
      /usr/lib/oracle/<version>/client64/lib  ; for 64bits arch
    
    Run Code Online (Sandbox Code Playgroud)
  7. 重新加载ldconfig缓存(-v如果你想要一些详细的话,请使用标志):

    $ sudo ldconfig
    
    Run Code Online (Sandbox Code Playgroud)

您可能需要安装libaio1.

HOWTO安装cx_Oracle

假设我们已经安装了Oracle Instant Client 10,您可以使用不同的替代方法来安装cx_Oracle:

  1. pip安装:( $ pip install cx_oracle仅限linux)
  2. cx_oracle PyPI站点下载installer/.tar.gz文件

旧版本(小于5.1.2的版本是.msi和.rpm文件)可以从这里下载.使用外星人安装RPM.例如,在撰写本文时: $ sudo alien -i cx_Oracle-5.0-10g-py25-1.x86.rpm

要测试,python -c 'import cx_Oracle; print cx_Oracle'应该返回带有其版本的模块.

  • 在尝试从*nix机器上的源安装cx_Oracle之前,您没有感到痛苦.遗憾的是这是一个PITA. (2认同)

jav*_*ved 10

第1步检查python是32位还是64位

import platform
platform.architecture()[0]#'32bit'
Run Code Online (Sandbox Code Playgroud)

要么 在此输入图像描述 步骤2安装oracle客户端(32位或64位取决于步骤1中的 python版本)

  • http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html(link for 32位版本)下载oracle客户端并将zip文件解压缩到一个文件夹中
  • 在这种情况下,zip文件被解压缩为"安装"
  • 目录将显示如下 在此输入图像描述

    • 单击安装并设置"base"和"software"目录的路径

      • 软件目录应该在基目录内(推荐)
      • 在这种情况下,'installed'目录是base,'software'目录是用于软件路径

      • 设置ORACLE_HOME路径:

      • 将oracle主路径设置为'software'目录为'F:\ softwares\oracle11g32\installed\software'

      • 在cmd中检查'echo%ORACLE_HOME%'以查看路径是否设置正确

步骤3为python 2.7安装vcforpython27或visual c ++ 2008 express edition

  • 从这里下载https://www.microsoft.com/en-sa/download/details.aspx?id=44266(在这种情况下使用它来避免安装整个visual c ++ 2008,如下所述)

  • 它是一个小包,包含python 2.7的c ++编译器

  • (要么)

  • visual c ++ 2008 express edition(https://www.microsoft.com/en-sa/download/details.aspx?id=5582)[它将安装在1 GB左右]

  • vcforpython27将安装在'C:\ Users\Administrator\AppData\Local\Programs\Common\Microsoft'

  • 在Windows中启用show hidden folder到这些目录 在此输入图像描述

  • 设置一个名为'VS100COMNTOOLS'的环境变量,其值为'C:\ Users\Administrator\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0'
  • 它应该指向包含'vcvarsall'批处理文件的目录在此输入图像描述

  • echo%VS100COMNTOOL%以查看是否指向cmd中的正确目录

  • 并执行以下步骤:(来自:错误:无法找到vcvarsall.bat)

  • 转到C:/ Python27/lib/distutils文件msvc9compiler.py.在其中找到函数find_vcvarsall并进行以下修改.用productdir = os.path.join(toolsdir)替换行:productdir = os.path.join(toolsdir,os.pardir,os.pardir,"VC")这是vcvarsall.bat在这种情况下驻留的地方(check,其中vcvarsall.bat在你的安装中).

安装cx_Oracle

 the easy step: pip install cx_oracle
Run Code Online (Sandbox Code Playgroud)

如果正确遵循上述所有步骤,那么它应该有效.想出这个问题花了很多痛苦.我希望它会有用.

建议运行:

 pip install --upgrade setuptools
 from : https://stackoverflow.com/questions/2667069/cannot-find-vcvarsall-bat-when-running-a-python-script
Run Code Online (Sandbox Code Playgroud)