Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python无法识别cx_Oracle_Python_Python 2.7_Cx Oracle - Fatal编程技术网

python无法识别cx_Oracle

python无法识别cx_Oracle,python,python-2.7,cx-oracle,Python,Python 2.7,Cx Oracle,更新:准确的解决方案在标记答案下面的注释中 在enterprise redhat linux环境中,Python似乎找不到连接到数据库所需的cx_Oracle包。请参阅日志: [user@redhat ~]$ echo $PYTHONPATH ~/.local/lib/python3.4/site-packages [user@redhat ~]$ cd $PYTHONPATH [user@redhat site-packages]$ ls -l total 1912 drwxrwxr-x 2

更新:准确的解决方案在标记答案下面的注释中

在enterprise redhat linux环境中,Python似乎找不到连接到数据库所需的cx_Oracle包。请参阅日志:

[user@redhat ~]$ echo $PYTHONPATH
~/.local/lib/python3.4/site-packages
[user@redhat ~]$ cd $PYTHONPATH
[user@redhat site-packages]$ ls -l
total 1912
drwxrwxr-x  2 user user     131 Apr 20 12:00 cx_Oracle-6.2.1.dist-info
-rwxrwxr-x  1 user user 1900997 Apr 20 12:00 cx_Oracle.cpython-34m.so
-rw-rw-r--  1 user user     290 Apr 20 12:00 easy-install.pth
drwxrwxr-x  4 user user     114 Apr 20 12:00 et_xmlfile
drwxrwxr-x  2 user user     117 Apr 20 12:00 et_xmlfile-1.0.1-py3.4.egg-info
drwxrwxr-x  2 user user     150 Apr 20 12:00 jdcal-1.4.dist-info
-rw-rw-r--  1 user user   12553 Apr 20 12:00 jdcal.py
-rw-rw-r--  1 user user   13386 Apr 20 12:00 jdcal.pyc
drwxrwxr-x 21 user user    4096 Apr 20 12:00 openpyxl
drwxrwxr-x  2 user user     154 Apr 20 12:00 openpyxl-2.5.3-py3.4.egg-info
drwxrwxr-x  2 user user      61 Apr 23 12:00 __pycache__
-rw-rw-r--  1 user user    2389 Apr 23 12:00 site.py
-rw-rw-r--  1 user user    1743 Apr 23 12:00 site.pyc
[user@redhat site-packages]$ python
Python 2.7.5 (default, May  3 2017, 07:55:04)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-14)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cx_Oracle
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named cx_Oracle
>>> import openpyxl
openpyxl/xml/__init__.py:15: UserWarning: The installed version of lxml is too old to be used with openpyxl
  warnings.warn("The installed version of lxml is too old to be used with openpyxl")
>>> exit()
[user@redhat site-packages]$

请注意,cx_Oracle和openpyxl都是在一个命令中使用pip安装的:pip install-user cx_Oracle openpyxl它们都位于相同的位置,并以相同的方式拉入python,但openpyxl可见,而cx_Oracle不可见。我做错了什么?

您似乎正在运行Python 2.7,但您安装的cx\u Oracle是针对Python 3.4的!cx_Oracle是一个纯C模块,因此只能在为其编译的Python中工作。另一个模块openpyxl有纯Python模块,因此它至少会部分加载。您需要运行Python3.4或重新安装Python2.7的两个模块。

您似乎正在运行Python2.7,但您安装的cx_Oracle是针对Python3.4的!cx_Oracle是一个纯C模块,因此只能在为其编译的Python中工作。另一个模块openpyxl有纯Python模块,因此它至少会部分加载。您需要运行python3.4或重新安装Python2.7的两个模块。

我很确定pip只是将其放在python3.4文件夹中。官方的cx_Oracle文档说它与2.7兼容:是的,cx_Oracle与Python 2.7兼容。但是您必须确保您有一个为Python2.7编译的模块,而不是为Python3.4编译的模块!非常感谢。由于pip被重命名为pip3.4,我在想怎么做时遇到了问题,我没有意识到python中有一个单独的模块pip可以使用它。解决方案是:pip3.4安装-用户pip,然后是python2.7-m pip安装-用户cx_Oracle。官方的cx_Oracle文档说它与2.7兼容:是的,cx_Oracle与Python 2.7兼容。但是您必须确保您有一个为Python2.7编译的模块,而不是为Python3.4编译的模块!非常感谢。由于pip被重命名为pip3.4,我在想怎么做时遇到了问题,我没有意识到python中有一个单独的模块pip可以使用它。解决方案是:pip3.4安装-用户pip,然后是python2.7-mpip安装-用户cx\u Oracle。