ImportError:没有名为_ssl的模块

Ubuntu Maverick w / Python 2.7:

我无法弄清楚如何解决下面的导入错误:

>>> import ssl Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/ssl.py", line 60, in <module> import _ssl # if we can't import it, let the error propagate ImportError: No module named _ssl 

更新:我重新编译的源代码。 我无法弄清楚如何在下面提到的答案中加上–with-ssl选项,而是通过在/Modules/Setup.dist中编辑有关SSL的行来解决这个问题。

你从源头上构buildPython吗? 如果是这样,那么在构build时需要使用--with-ssl选项。

与原始问题无关,但是因为这是Google的第一个结果…我在Google AppEngine上打了这个,不得不添加:

 libraries: - name: ssl version: latest 

app.yaml为单位: https : //cloud.google.com/appengine/docs/python/sockets/ssl_support

请注意:这似乎工作到Python 2.7.9版本,但不是2.7.10或2.7.11。

如果你是从源代码构buildPython的话,这只是依赖关系的问题:因为你错过了安装的OpenSSL库,Python默默无法安装_ssl模块。 您可以在make命令的最终报告中看到它:

 Python build finished, but the necessary bits to build these modules were not found: _bsddb _sqlite3 _ssl _tkinter bsddb185 dbm dl gdbm imageop sunaudiodev To find the necessary bits, look in setup.py in detect_modules() for the module's name. 

在任何一个标准的libpath( /usr/lib/usr/local/lib …)中安装OpenSSL lib应该有效。 无论如何,这是我做的:-)

我有完全一样的问题。 我修正了它没有重buildpython,如下所示:

1) find具有相同体系结构(i386或x86_64)和相同python版本(例如:2.7.5)的另一台服务器 。 是的,这是困难的一部分。 如果找不到任何具有相同python版本的服务器,可以尝试从源代码安装python到另一个服务器。

2)在这台服务器上,检查import ssl是否工作。 它应该工作。

3)如果有效,那么尝试find如下所示的_ssl

 [root@myserver]# find / -iname _ssl.so /usr/local/python27/lib/python2.7/lib-dynload/_ssl.so 

4) 将此文件复制到原始服务器。 使用相同的目标文件夹:/usr/local/python27/lib/python2.7/lib-dynload/

5) 仔细检查所有者和权限

 [root@myserver]# chown root:root _ssl.so [root@myserver]# chmod 755 _ssl.so 

6)现在你应该可以导入ssl。

这在python 2.7.3的CentOS 6.3 x86_64环境中适用于我。 另外我已经安装了Python 2.6.6,但与SSL工作正常。

希望它有帮助。

由于–with-ssl不能被识别,所以我只安装了libssl-dev:

 sudo apt-get install libssl-dev 

通过以下方式重新开始清理:

 make clean 

然后重新开始,依次执行下列命令:

 ./configure make make test make install 

有关OpenSSL的更多信息,请访问OpenSSL上的Ubuntu帮助页面 。

下划线通常意味着一个C模块(即DLL),Python无法find它。 你自己build了python吗? 如果是这样,你需要包括SSL支持。

要么使用你的包pipe理器来安装python-ssl的补充包,要么使用-with-ssl(需要安装OpenSSL头文件/库)重新编译Python。

在Solaris 11上,我必须修改setup.py以在SSL包含searchpath中包含/ opt / csw / include / openssl。

乌韦