AWS Ubuntu 14.04 atualização Python para 2.7.10, como lidar com o apt-get python-dev

5

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.

    
por Daniel F 04.11.2015 / 19:27

1 resposta

1

Resolvido este problema deixando todos os seus valores padrão e usando o Docker para todas as versões não padrão.

    
por 05.01.2016 / 12:49