Resolvido este problema deixando todos os seus valores padrão e usando o Docker para todas as versões não padrão.
O Ubuntu 14.04 da AWS vem com o python 2.7.6.
Antes de fazer qualquer outra coisa na imagem, eu faço um upgrade para o 2.7.10, emitindo
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 ~/
Eu uso make install
em vez de sudo make altinstall
porque eu quero que seja o único Python 2.7 no sistema, o padrão.
Eu sei que há um aviso nos documentos
Aviso: make install pode sobrescrever ou mascarar o binário python. Portanto, recomenda-se fazer o altinstall em vez de make install, pois ele só instala exec_prefix / bin / pythonversion.
Devo ficar com make altinstall
? Como faço para que meu padrão python
então?
Como faço para lidar com outras bibliotecas, como pip install --upgrade --force-reinstall pyopenssl
, que compila algum código C? Para que o código C seja compilado, eu preciso de sudo apt-get install python-dev
para obter os cabeçalhos. Essa suposição está errada? Estou um pouco confuso sobre isso, pois acho que o python-dev
no repositório é baseado em 2.7.6, se isso faz algum sentido.
Além disso, como estou executando o pip em um virtualenv, ao emitir pip install --upgrade --force-reinstall pyopenssl
, obtenho um erro OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/pyOpenSSL-0.15.1.dist-info'
, o que é mais provável porque não estou executando o sudo (mas como o usuário padrão), para que a biblioteca seja instalada no virtualenv. O que está causando isso? Isso não acontece se eu não atualizar, mas deixar o Python em 2.7.6
Uma última pergunta: assim que eu atualizo o python manualmente compilando, não estou autorizado a usar os pacotes python- * (apt-get python- *) no repo?
Agradecemos antecipadamente por sua ajuda.
Resolvido este problema deixando todos os seus valores padrão e usando o Docker para todas as versões não padrão.