Моя основная проблема заключается в том, что в модуле httplib python отсутствует HTTPSConnection .
Когда я пытаюсь использовать pip для установки структуры с помощью pip, я получаю следующую ошибку: объект '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
Установленный пакет:
curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
sudo python get-pip.py
Я должен спросить, почему вы проходите через сборку 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.