use*_*440 10 python dll cx-oracle importerror
我在使用Python导入cx_Oracle时遇到问题.我知道这里讨论了很多关于cx_Oracle的问题,但是在阅读完所有相关主题之后,我似乎无法找到问题的解决方案.
我有两台机器,一台是我的电脑,另一台是远程工作站,它有类似的配置(Windows 7,64位).我需要在远程工作站上安装cx_Oracle但它不起作用,而它在我的计算机上工作正常(我可以成功导入模块并连接到我的数据库).在远程工作站上,我有以下错误:
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import cx_Oracle
ImportError: DLL load failed: The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)
我已经仔细检查了我的环境变量,并且我重新安装了cx_Oracle几次,但我无法让它工作......我对这个问题进行了一些研究,我有点卡在这里,我不明白为什么它在我的计算机上工作正常,但在这个远程工作站上没有(唯一的区别是这个远程工作站是一个VM).
有没有人知道可能是什么问题?
在cx_oracle.pyd上运行Dependancy Walker(在我的计算机上工作正常并且在cx_oracle不起作用的远程工作站上),唯一的区别是我的远程工作站上找不到的dll MSVCR100和MSVCR90.
我有以下环境变量设置:
C:\Oracle as ORACLE_BASE
C:\Oracle\instantclient_12_1 作为ORACLE_HOME
C:\Oracle\instantclient_12_1 添加到"路径"变量
两台机器都是64位Windows 7
我正在运行Python 2.7.5
我解压缩了instantclient-basic-nt-12.1.0.1.0 in C:\Oracle\instantclient_12_1
我安装了 cx_Oracle-5.1.2-11g.win32-py2.7s
在远程工作站上,sys.path给我:
'C:\ Python27\Lib\idlelib','C:\ Windows\system32\python27.zip','C:\ Python27\DLLs','C:\ Python27\lib','C:\ Python27\lib\plat-win','C:\ Python27\lib\lib-tk','C:\ Python27','C:\ Python27\lib\site-packages'
在上一篇文章中,所有文件(Python 2.7,cx_Oracle包,Oracle Instant Client)都是针对32位系统的.我为64位系统下载了相同版本的文件,现在我的远程工作站上的一切正常.
基本上,修复包括重新安装64位系统而不是32位系统的所有内容(Python,Oracle Instant Client和cx_Oracle).
总结一下,这是我的问题以及它是如何解决的:1)我安装了Cx_Oracle(来自32位Windows安装包)和Oracle Instant Client(32位),它在我运行python 2.7的64位系统上运行得很好.5对于32位系统2)我在虚拟机上做了同样的事情(运行64位系统)并且它没有工作3)为了让它在VM上工作,我重新安装了所有的东西64位系统(python,Instant Client,Cx_Oracle),它终于奏效了
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html http://sourceforge.net/projects/cx-oracle/files/5.1.2/
此外,请确保下载与您的数据库版本对应的cx_Oracle和Instant客户端(在我的情况下为11g).希望这可以帮助.
小智 4
我在 win 7 和 python35(64 位) 上运行 Oracle Express。
这就是我设法让 django-1.9 连接到 oracle 的方法。
使用 pip ( pip3 install cx_Oracle) 安装 cx_Oracle,而不是从 pypi 网站下载 msi。
从( http://www.oracle.com/technetwork/topics/winx64soft-089540.html )下载Oracle即时客户端64位版本并提取到c:\oraclexe(只是为了将所有oracle内容保存在一个地方)
创建以下环境变量:
set ORACLE_BASE=C:\oraclexe
set ORACLE_HOME=C:\oraniclexe\app\oracle\product\11.2.0\server
set PATH=C:\oraclexe\instantclient_11_2;%PATH%
更新了我的 django settings.py
DATABASES = {
'default':{
'ENGINE':'django.db.backends.oracle'
'NAME':'XE',
'USER':'hr',
'PASSWORD':'hr',
'HOST':'localhost',
'PORT':'1521',
},
}
就是这样。此后,我的 django 迁移工作正常