AWSのUbuntu14.04には、python 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、デフォルトのものにしたいためです。
ドキュメントに警告があることを知っています
警告:makeinstallはpythonバイナリを上書きまたはマスカレードする可能性があります。したがって、exec_prefix/bin/pythonversionのみをインストールするため、makeinstallの代わりにmakealtinstallをお勧めします。
make altinstall
に固執する必要がありますか?それをデフォルトのpython
にするにはどうすればよいですか?
pip install --upgrade --force-reinstall pyopenssl
のような、いくつかのCコードをコンパイルする他のライブラリをどのように処理しますか? Cコードをコンパイルするには、ヘッダーを取得するためにSudo apt-get install python-dev
する必要があります。 この仮定は間違っていますか?レポのpython-dev
は2.7.6に基づいていると思うので、これについて少し混乱しています。
さらに、virtualenvでpipを実行しているため、そこで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 at 2.7.6)のままにすると発生しません
最後の質問:コンパイルして手動でpythonをアップグレードするとすぐに、リポジトリでpython- *パッケージ(apt-get python- *)を使用できなくなりますか?
よろしくお願いします。
すべてをデフォルトのままにし、すべての非標準バージョンにDockerを使用することで、この問題を解決しました。