J C*_*per 45 python python-2.7
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的行来实现这一点.
slu*_*pet 62
与原始问题无关,但因为这是Google的第一个结果......我在Google AppEngine上点击了这个并且必须添加:
libraries:
- name: ssl
  version: latest
到app.yaml per:https://cloud.google.com/appengine/docs/python/sockets/ssl_support
请注意:这似乎适用于Python 2.7.9版,但不适用于2.7.10或2.7.11.
Utk*_*glu 27
你是从源代码构建Python的吗?如果是这样,您--with-ssl在构建时需要该选项.
Emm*_*uel 12
如果你从源代码构建Python,这只是依赖性问题:因为你错过了安装的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.
在任何标准的lib路径(/usr/lib,/usr/local/lib...)中安装OpenSSL lib 应该可以解决问题.无论如何这就是我做的:-)
小智 8
我有完全相同的问题.我修复它而不重建python,如下所示:
1)找到具有相同体系结构的另一台服务器(i386或x86_64)和相同的python版本(例如:2.7.5).是的,这是困难的部分.如果找不到任何具有相同python版本的服务器,可以尝试将python从源安装到另一台服务器.
2)在另一台服务器中,检查import ssl是否有效.它应该工作.
3)如果有效,那么尝试按如下方式找到_ssl lilbrary:
[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了.
这对我来说在CentOS 6.3 x86_64环境中使用python 2.7.3.我也安装了python 2.6.6,但ssl工作正常.
希望能帮助到你.
由于--with-ssl不再被识别,我只是安装了libssl-dev:
sudo apt-get install libssl-dev 
要重新启动make,请先通过以下方式清理:
make clean
然后重新开始并一个接一个地执行以下命令:
./configure
make
make test
make install
有关OpenSSL的更多信息,请访问OpenSSL上的Ubuntu帮助页面.