Ubuntu 14.04 от AWS поставляется с питоном 2.7.6.
Прежде чем делать что-либо еще с образом, я делаю обновление до 2.7.10, выпуская
sudo apt-get -y install build-essential checkinstall libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
mkdir -p ~/python/2.7.10
cd ~/python/2.7.10
wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
tar xzf Python-2.7.10.tgz
cd Python-2.7.10
sudo ./configure
sudo make install
cd ~/
Я использую make install
вместо sudo make altinstall
потому что я хочу, чтобы он был единственным Python 2.7 в системе, по умолчанию.
Я знаю, что в документах есть предупреждение
Предупреждение: make install может перезаписывать или маскировать двоичный файл Python. Поэтому вместо make install рекомендуется make altinstall, поскольку он устанавливает только exec_prefix/bin/pythonversion.
Должен ли я придерживаться make altinstall
? Как я могу сделать это моим python
умолчанию тогда?
Как мне работать с другими библиотеками, такими как pip install --upgrade --force-reinstall pyopenssl
, который компилирует некоторый код на C? Для того, чтобы код на C был скомпилирован, мне нужно sudo apt-get install python-dev
, чтобы получить заголовки. Это предположение неверно? Я немного запутался по этому поводу, так как полагаю, что python-dev
в репо основан на 2.7.6, если это имеет смысл.
Кроме того, поскольку я запускаю pip в virtualenv, при выдаче там pip install --upgrade --force-reinstall pyopenssl
я получаю сообщение об OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/pyOpenSSL-0.15.1.dist-info'
ошибка, наиболее вероятная из-за того, что я не запускаю sudo (но как пользователь по умолчанию), чтобы библиотека была установлена в virtualenv. Чем это вызвано? Этого не произойдет, если я не обновлюсь, но оставлю Python на 2.7.6
Последний вопрос: как только я обновлю python вручную путем компиляции, я не буду использовать пакеты python- * (apt-get python- *) в репозитории?
Заранее спасибо за помощь.