0

我正在运行 Enthought Canopy,python 版本 2.7.3,并且在使用模块 MySQLdb 时遇到了困难。我从 Canopy 包管理器安装了 MySQL_Python 1.2.3,但是当我运行我的代码时,我得到了

  File "pyfits_test.py", line 2, in <module>
    import MySQLdb as mdb
  File "/home/cmessick/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/MySQLdb/__init__.py", line 19, in <module>
    import _mysql
ImportError: libssl.so.6: cannot open shared object file: No such file or directory

我的代码的第 2 行简单地说

import MySQLdb as mdb

我也试过

from MySQL_python import MySQLdb as mdb

并得到

Traceback (most recent call last):
  File "pyfits_test.py", line 2, in <module>
    from MySQL_python import MySQLdb as mdb
ImportError: No module named MySQL_python

有没有人有任何建议让 Enthought Canopy 与 MySQLdb 一起工作?

编辑:不确定是否重要,但我正在运行 Ubuntu 12.04。

第二次编辑:我想出了如何添加到模块搜索路径,所以在我现在拥有的任何其他内容之前,在我的代码开头:

import sys
sys.path.append('/usr/lib/python2.7/dist-packages/')

一旦我这样做,它就会起作用。有没有人有一个更永久的解决方案,我不必每次都实施?

4

1 回答 1

0

这是一个老问题,但我刚刚在 Ubuntu 13.10 上遇到了 EPD 7.3-2 64 位(不是 Canopy)的同样问题。以下方法为我解决了这个问题:

cd /path/to/epd/lib
sudo ln -s libcrypto.so libcrypto.so.6
sudo ln -s libssl.so libssl.so.6

进行此更改后,您应该可以导入 MySQLdb。

在您的“修复”中,您似乎正在将系统 python dist-packages 目录添加到您的 EPD python 搜索路径;一般来说,您可能不想这样做。使用 enpkg 管理您的 EPD 安装,不要让您的 EPD python 安装依赖于您系统 python 的配置。

于 2013-11-15T20:28:47.620 回答