cx_Oracle模块安装错误消息

时间:2013-08-16 14:34:40

标签: oracle cx-oracle

我使用的是Python 2.7(32位),我的操作系统是64位Windows 7。

我正在尝试安装cx_Oracle模块。我已经运行了msi“cx_Oracle-5.1.2-10g.win32-py2.7.msi”,然后在cmd行上运行了“easy_install cx_Oracle”并收到了消息:

错误:无法找到vcvarsall.bat

我在这个网站上发现最好的解决方案是安装Microsoft Visual Studio 2008,我从我在这个网站上找到的链接做了。

现在当我在cmd行上运行“easy_install cx_Oracle”时,我收到以下消息,我不知道这意味着什么:

  

C:\ Python27> easy_install cx_Oracle搜索cx-Oracle Reading   .... org / simple / cx_Oracle / Reading   .... net / crew / atuining阅读   ... sourceforge.net最佳匹配:cx-Oracle 5.1.2   下载   http://prdownloads.sourceforge.net/cx-oracle/cx_Oracle-5.1.2.tar.gz?   下载处理cx_Oracle-5.1.2.tar.gz写作   C:\用户\ cnielsen \应用程序数据\本地\ TEMP \ easy_install的-44rupd \ cx_Oracle-5.1.2   \ setup.cfg运行cx_Oracle-5.1.2 \ setup.py -q bdist_egg --dist-dir   C:\用户\ cnielsen \ appda   TA \本地\ TEMP \ easy_install的-44rupd \ cx_Oracle-5.1.2 \蛋DIST-TMP的eyihnb   Traceback(最近一次调用最后一次):文件   “C:\ Python27 \ Scripts \ easy_install-script.py”,第9行,in       load_entry_point('setuptools == 0.8','console_scripts','easy_install')()文件   “build \ bdist.win-amd64 \ egg \ setuptools \ command \ easy_install.py”,行   1992年,在主文件中   “build \ bdist.win-amd64 \ egg \ setuptools \ command \ easy_install.py”,行   1979年,在with_ei_usage文件中   “build \ bdist.win-amd64 \ egg \ setuptools \ command \ easy_install.py”,行   1996年,在文件“C:\ Python27 \ lib \ distutils \ core.py”中,行   152,在设置中       dist.run_commands()run_commands中的文件“C:\ Python27 \ lib \ distutils \ dist.py”,第953行       self.run_command(cmd)文件“C:\ Python27 \ lib \ distutils \ dist.py”,第972行,在run_command中       cmd_obj.run()文件“build \ bdist.win-amd64 \ egg \ setuptools \ command \ easy_install.py”,行   380,在运行文件中   “build \ bdist.win-amd64 \ egg \ setuptools \ command \ easy_install.py”,行   623,在easy_install文件中   “build \ bdist.win-amd64 \ egg \ setuptools \ command \ easy_install.py”,行   653,在install_item文件中   “build \ bdist.win-amd64 \ egg \ setuptools \ command \ easy_install.py”,行   849,在install_eggs文件中   “build \ bdist.win-amd64 \ egg \ setuptools \ command \ easy_install.py”,行   1130,在build_and_install文件中   “build \ bdist.win-amd64 \ egg \ setuptools \ command \ easy_install.py”,行   1115,在run_setup文件中   “build \ bdist.win-amd64 \ egg \ setuptools \ sandbox.py”,第69行,in   run_setup文件“build \ bdist.win-amd64 \ egg \ setuptools \ sandbox.py”,   第120行,在运行文件中   “build \ bdist.win-amd64 \ egg \ setuptools \ sandbox.py”,第71行,in      在文件中的文件“setup.py”,第350行   设置中的“C:\ Python27 \ lib \ distutils \ core.py”,第152行       dist.run_commands()run_commands中的文件“C:\ Python27 \ lib \ distutils \ dist.py”,第953行       self.run_command(cmd)文件“C:\ Python27 \ lib \ distutils \ dist.py”,第972行,在run_command中       cmd_obj.run()文件“build \ bdist.win-amd64 \ egg \ setuptools \ command \ bdist_egg.py”,第185行,   在运行文件中   “build \ bdist.win-amd64 \ egg \ setuptools \ command \ bdist_egg.py”,第171行,   在call_command文件“C:\ Python27 \ lib \ distutils \ cmd.py”中,第326行,   在run_command中       self.distribution.run_command(command)文件“C:\ Python27 \ lib \ distutils \ dist.py”,第972行,在run_command中       cmd_obj.run()文件“build \ bdist.win-amd64 \ egg \ setuptools \ command \ install_lib.py”,line   20,我运行文件“C:\ Python27 \ lib \ distutils \ command \ install_lib.py”,   第111行,在构建中       self.run_command('build_ext')文件“C:\ Python27 \ lib \ distutils \ cmd.py”,第326行,在run_command中       self.distribution.run_command(command)文件“C:\ Python27 \ lib \ distutils \ dist.py”,第972行,在run_command中       cmd_obj.run()文件“build \ bdist.win-amd64 \ egg \ setuptools \ command \ build_ext.py”,第52行,   在运行文件“C:\ Python27 \ lib \ distutils \ command \ build_ext.py”中,行   339,在奔跑       self.build_extensions()文件“C:\ Python27 \ lib \ distutils \ command \ build_ext.py”,第448行,   build_exte nsions       self.build_extension(ext)文件“build \ bdist.win-amd64 \ egg \ setuptools \ command \ build_ext.py”,第186行,   在build_extension文件中   “C:\ Python27 \ lib \ distutils \ command \ build_ext.py”,第498行,in   build_exte nsion       depends = ext.depends)文件“C:\ Python27 \ lib \ distutils \ msvc9compiler.py”,第473行,在编译中       self.initialize()文件“C:\ Python27 \ lib \ distutils \ msvc9compiler.py”,第383行,初始化       vc_env = query_vcvarsall(VERSION,plat_spec)文件“C:\ Python27 \ lib \ distutils \ msvc9compiler.py”,第299行,   query_vcvarsal l       提高ValueError(str(list(result.keys())))ValueError:[u'path']

5 个答案:

答案 0 :(得分:1)

重申Leandro所说的,如果您已经运行了.msi安装程序并且需要安装oracle instantclient,则不需要easy_install cx_Oracle。

正如您已经发现的那样,安装oracle instantclient意味着您只需要将其解压缩到系统中的文件夹中(例如:C:\ oraclient)。

要记住的一些事情:

确保使用的是cx_Oracle,instantclient和数据库服务器本身的相同版本(或兼容版本)。例如,instantclient v12不支持低于版本10的数据库服务器。另外,请确保使用所有32位或全部64位版本(包括cx_Oracle,instantclient和python本身)。

此外,您需要将环境变量ORACLE_HOME和PATH设置为解压缩oracle instantclient的目录(例如:C:\ oraclient),以避免您提到的ImportError(DLL加载失败:%1不是一个有效的Win32应用程序)。 ImportError只是意味着找不到所需的库。

答案 1 :(得分:0)

easy_install步骤试图在您的计算机上编译cx_Oracle源,但这不是必需的,因为您已经安装了MSI,这是一个预编译的二进制版本。

如果您安装了二进制Oracle客户端(例如,即时客户端),您安装的MSI应该足以使用cx_Oracle。

答案 2 :(得分:0)

经过3天的搜索,我终于解决了这个问题。

诀窍是:

  1. 安装vcredist_x86.exe。 安装完成后,我运行easy_install cx_Oracle,不再看到原始错误消息。
  2. 重新安装Python 2.7.5,确保它是32位版本(x86)
  3. 重新安装我的IDE“PyScripter”,确保它是32位版本(x86)

答案 3 :(得分:0)

由于cx_Oracle仅使用Oracle TNS名称工具进行连接,因此您可能还需要设置TNS_ADMIN环境变量以指示要使用的TNS名称文件所在的位置。那个问题也让我感到厌烦。

答案 4 :(得分:0)

对于Windows 7 64位,您需要“Windows amd64 Installer(Oracle 11g,Python 3.3)”。它也适用于英特尔。

我没有InstantClient,而是使用Oracle 11.2安装中的SQL * Plus(64位)。