web-dev-qa-db-ja.com

CygwinにPython 3.0をインストールする

質問

Cygwinを使用してPython 3.0とPython 2.xを一緒にインストールする正しい方法は何ですか?

ノート

私はすでにCygwinの作業コピーを持っており、Python 2.xはCygwin内にインストールされています(/lib/python2.xではなく、c:\python2.x)。

また、pythonがpython 2.xを指すようにすることで、Python 3を個別に(意図的にのみ)呼び出すことができるようにしたいと思います。既存の依存関係を保持するため。python30または他の方法を使用したいと思います。

この主題に関するガイドへのポインタは大歓迎です。 cygwinサイトでもpython.orgでも見つからないようです。

15
brad

Python 3.0ソースの標準のmake installターゲットはpythonバイナリをインストールしません。代わりに、最後にインストールプリントを作成します

* Note: not installed as 'python'.
* Use 'make fullinstall' to install as 'python'.
* However, 'make fullinstall' is discouraged,
* as it will clobber your Python 2.x installation.

だから心配しないでください。

インストール全体を簡単に削除したい場合は、configure --prefix=/usr/local/py3のような操作を行ってください。

9

昨日(2012年7月25日水曜日)の時点で、 Python 3.2.3は標準のCygwinインストーラーに含まれています 。 Cygwinのsetup.exeを再度実行するだけで(必要に応じて cygwin.com から再度ダウンロード)、他のパッケージと同じように選択してインストールできるはずです。

これはpython3としてインストールされ、既存の2.xインストールはそのまま残されます。

$ python -V
Python 2.6.8
$ python3 -V
Python 3.2.3
$ ls -l $(which python) $(which python3)
lrwxrwxrwx 1 me Domain Users 13 Jun 21 15:12 /usr/bin/python -> python2.6.exe
lrwxrwxrwx 1 me root         14 Jul 26 10:56 /usr/bin/python3 -> python3.2m.exe
14
me_and

Python 3を邪魔にならない方法で使用するには、まだ持っていない場合は、ユーザーのホームディレクトリに「.bash_profile」というファイルを作成します。

Python 3インストールを指すエイリアスを設定します。私のWindowsマシンでは、次のようになります。

alias python3=/cygdrive/d/apps/Python31/python
export python3

インストールの場所に応じてパスを調整します。Windowsの場合は、UNIXの改行を使用していることを確認してください。そうしないと、「bash:$ '\ r':コマンドが見つかりません」などのメッセージが表示されます。

これで「python3」コマンドを使用できるようになり、Cygwinに付属のPythonのバージョンは変更されていません。

5
Steve

Perlの世界では、私は常に自分自身をプレフィックス付きでインストールします。

./configure --prefix=/usr/local/Perl/5.10.0

私はOSに付属しているPerlを扱いたくありません。なぜなら、Perlのライブラリをインストールしたくないし、OSで書かれたスクリプトを台無しにする可能性があるからです。

Cygwinについても同じことをします。自分のモジュールをインストールでき、Cygwinの更新によってそれらが破棄されることを心配しないほうがはるかに便利だからです。

Python(やりたい))を学んだら、同じことをするつもりです。

このようにして、個々のアプリケーションをあるバージョンから別のバージョンに個別にアップグレードできます。

本当に深刻なアプリケーション(主要なWebアプリなど)の場合、アプリ専用のユーザーが所有する自己完結型のインストールを行うこともあります。

3
skiphoppy

コマンドラインからpythonを呼び出す代わりに、次のようにpython3を呼び出すだけです。

python3 script1.py
0
umbregachoong