Python 中缺少 ssl。'module' 对象没有属性 'HTTPSConnection'

Python 中缺少 ssl。'module' 对象没有属性 'HTTPSConnection'

我的主要问题是 python 的 httplib 模块缺少 HTTPSConnection。

当我尝试使用 pip 安装 fabric 时,出现此错误:“module”对象没有属性“HTTPSConnection”

我使用了 easy_install,它大部分时候都有效,但也引发了一个错误:

Download error: unknown url type: https -- Some packages may not be found!

这是我安装 python2.7 的步骤

sudo apt-get install build-essential
sudo apt-get install libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz
tar –xvf Python-2.7.5.tgz
cd Python-2.7.5
./configure --enable-shared --prefix=/usr --sysconfdir=/etc
make
sudo make altinstall

已安装的安装工具:

wget https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg#md5=fe1f997bc722265116870bc7919059ea
sudo sh setuptools-0.6c11-py2.7.egg

已安装的pip:

curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
sudo python get-pip.py

答案1

我不得不问,你为什么要费尽心思从源代码构建 Python?我只是好奇。我可能把它理解为一种学习练习,但对于大多数实际目的(尤其是如果你正在做一个原始构建,没有对原版 Python 进行任何修改,就像你展示的那样),Ubuntu 中包含的软件包可以很好地工作。

显然,为了让 Python 能够支持 SSL,你需要在Modules/Setup.dist运行 之前取消注释 中的某些内容./configure。这从 的第 213 行开始Setup.dist

# Socket module helper for socket(2)
#_socket socketmodule.c timemodule.c
# ^^^^ UNCOMMENT THIS LINE

# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
#SSL=/usr/local/ssl
#_ssl _ssl.c \
#   -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
#   -L$(SSL)/lib -lssl -lcrypto
# ^^^^ UNCOMMENT PREVIOUS 4 LINES
# On Ubuntu, set SSL=/usr/ since /usr/include and /usr/include/openssl are there.

相关内容