UbuntuにはPython 2.7.2以上がプリインストールされています。 (私はPythonの開発パッケージをダウンロードしました。)Graham Dumpletonは私のディストリビューターがPythonを外部のpyexpatの実装を使用する方法で明示的にビルドしていると私に言いました(How do I replace/update the version of the expat library used by Apache?で極端な深さで説明しました)問題。彼はまた、問題を解決するためにPythonを自分でソースコードから構築できると述べました。私はUbuntuでこれをどうやってしますか? (私はLinuxへの新たなんだ覚えておいてください。)Ubuntuのソースコードから自分自身でpythonをビルドするにはどうすればよいですか?
答えて
(ターミナル)で、シェルプロンプトで、(これは、あなたが何かを構築するために必要なすべての一般的なパッケージを取得します
sudo apt-get install build-essential
を実行しますコンパイラなど)。
は、これはあなたのpythonを構築するために必要なすべてのライブラリを取得します
sudo apt-get build-dep python2.7
を実行します。
次に、pythonのソースコードをダウンロードして、ディレクトリに解凍します。
make && make install
あなたが途中で思わぬ障害がヒットした場合、ここに戻って尋ねる:
は、それが構築され、インストールされますし、そこに行くとmake
その後
./configure --prefix=/path/where/you/want/python/installed
を実行し、その後make install
私はいくつかのガイダンスを提供しようとします。
'sudo apt-get build-dep python2.7'を実行すると、" E:あなたのsources.listにいくつかの 'source' URIを入れる必要があります。何か案が? (また、副次的なメモ:最初のコマンドの "essentials"の最後に-sを付けずに 'sudo apt-get install build-essential'を書くことを意図したと思います。) –
また、mod_wsgiでPythonをビルドするときには--enable-sharedオプションが必要です。デフォルトではPythonは共有ライブラリをビルドしません。組み込みシステムを動的にロードするのには適していません。 –
「彼ら」とは何ですか?何を参考にしていますか?また、その前に、エラーメッセージをどのように解決するのですか? sources.listに何かを追加する必要がありますか? –
Pythonをビルドする優れたソリューションはpythonbrewです。これはプロセスを自動化し、いくつかの異なるバージョンをインストールするだけでなく、それらの間で簡単に選択することもできます。
2016年、pyenvとPyRunは最も実行可能なソリューションです。
+1どのように成熟ですか?個人的な経験はありますか? –
@NoufalIbrahim:私は['pythonz'](https://github.com/saghul/pythonz)(' pythonbrew'の簡略フォーク)を使用しています。宣伝されたとおりに動作します。ソースをダウンロードして手作業で構築するプロセスを自動化します。 – jfs
このツールはメンテナンスされていません。 –
pyenvを試してみてください。私はまだそれを試していない。しかし、ソースを見ると、任意の* ixシステム上にCPythonインタープリタをインストールすることは非常に成熟したようです。
次のように(githubのから)、「熱い」ごく最近のpythonを構築するための最良の方法は次のとおりです。
sudo apt-get update \
&& apt-get install -y build-essential git libexpat1-dev libssl-dev zlib1g-dev \
libncurses5-dev libbz2-dev liblzma-dev \
libsqlite3-dev libffi-dev tcl-dev linux-headers-amd64 libgdbm-dev \
libreadline-dev tk tk-dev
git clone https://github.com/python/cpython.git
cd cpython && ./configure --prefix=/usr \
--enable-loadable-sqlite-extensions \
--enable-shared \
--with-lto \
--enable-optimizations \
--with-system-expat \
--with-system-ffi \
--enable-ipv6 --with-threads --with-pydebug --disable-rpath \
&& make \
&& make install
それはgithubの上のソースからのごく最近のpythonを構築します。
これで私はPython 3.7.0a0 (heads/master:60a6632a3d, Aug 5 2017)
を作りました。
もしあなたがここで答えを得なければ、この質問はaskubuntu.comのより多くのUbuntuの人々によって見られるかもしれません。 –
これは実際にはubuntu特有ではないので、ここではうまくいくと思います。私の意見では、さまざまなスタック交換サイトがかなり重複しています。 –