2016-11-15 12 views
2

私はUbuntu 16.04.1 LTSでPython 2.7.12とPython 3.5.2を同時に使う必要があります。 Python 3はあらかじめインストールされていたので、ディレクトリへのパスという点ではどこにあるのか分かりませんでしたが、Python 2は/usr/local/lib/python2.7/の中にあります。Python 2.7とPython 3.5のライブラリを同じUbuntu OSで別々に使用し、維持管理し、インストールするにはどうしたらいいですか?

私はこの2つのpythonのことを維持していれば、別にライブラリをインストールしたり、別のライブラリをインストールしたり、何を避けたりするべきかについて、インストール方法については何も質問しませんでした。長期?例えば、私は通常pipインストールを実行してライブラリをインストールし、python2ディレクトリにインストールされていることを確認することができますが、どうやってpython3の同じパッケージを競合なしにインストールできますか?何かのように:python3 pip install <package> ??デフォルトのpython3はどこにインストールされていますか? Pythonがコマンドの一部ではないパス、例えばpip freezesudo-apt getなどのためのpython3の呼び出し方法を教えてください。

PS:私はVirtualenvで正式に働いたことはありませんが、お互いから2つの言語バージョンを分離するのではなく、通常はPython言語バージョン内のプロジェクトを分離するのに適していると伝えられました。

お知らせください。

ありがとうございます。

+0

python2とpython3で作業できます。 Python3は/usr/local/lib/python3.xにあり、pythonxを実行するにはpythonx scrypt.py – eyllanesc

+0

'/ usr/local/lib/python3.x'にはdist-packagesという名前のディレクトリが1つしかありません。空の。 Python 3.5.2(デフォルト、7月5日、2016年、12時43分10秒) [GCC 5.4。 0 20160609] on linux 「ヘルプ」、「著作権」、「クレジット」または「ライセンス」を入力してください。そのパスが正しいかどうかは分かりません。 –

+0

はい、それは正しいです – eyllanesc

答えて

6

これはPythonがあなたのために行うように、全く問題ありません。あなたはvirtualenvはまったく必要ありません。

あなたがUbuntuのパッケージを使用する場合は、必ずpython3-numpypython-numpy、例えば、Pythonの3のためのpython3-バージョン、およびPythonの2
の通常python-バージョンを使用します。

あなたは余分なパッケージをインストールするためにpipを使用する場合、どちらのバージョン番号を付加してpipスクリプトを使用します。それぞれのPythonの実行のためのモジュールとしてpipを呼び出し、pip2.7またはpip3.5、または、私の好ましい方法:

python2.7 -m pip install <whatever> 

それ以外
python3.5 -m pip install <whatever> 

、すべての問題があってはならない:Pythonは完全に別のディレクトリにパッケージを格納し、EA ch Python実行可能ファイルは、それぞれの指令だけを使用します。

do PYTHONPATHで実際にあなたが何をしているのか分からない限り、フィドルになります。これは、PYTHONPATHをPython 2.7モジュールを持つディレクトリに設定し、Python 3.5を使用して実行する危険性があります。


最初から起動する場合は、最初にpipをインストールする必要があります。システムパイソン(複数可)については

、関連するパッケージを使用します。内蔵のブートストラップモジュールを使用して、あなたのローカルにインストールされたPythonの(S)のために

sudo apt install python-pip 
sudo apt install python3-pip 

を:

pythonx.y -m ensurepip 

OSにインストールされたPython実行可能ファイルに関する注意:

Python 3.5は/usr/bin/python3.5、Python 2.7(OSは1)/usr/bin/python2.7にあります。 /usr/local/bin/python2.7のローカルにインストールされているの横にあるOS 2.7の1つをとして使用することもできます(間違ったパッケージを使用したためにパッケージが見つからない場合は混乱します)。
Python 3.5の隣にPython 3.6をインストールしてください(make altinstallを使用した場合は、python3は上書きされません)。
あるよう

あなたが本当にpip(あるいはpip2.7)を実行したくない理由でもあるpip2.7はあなたPATHに応じて、代わりに/usr/local/bin/pip2.7で一つで、あなたのシステムの1を得ることができます。

(同じことがpython2.7実行のために行くので、あなたが)1つを実行します(または別名を持つようにフルパス/usr/local/bin/python2.7を指定する必要がある場合は、同じことがpip2.7のために保持している。一方、/usr/local/binある場合最初にPATHにある場合、原則として同じpippython実行ファイルには実行しないでください)。

+0

'python2.7 -m pip freeze'と' python3.5 -m pip freeze'は、 '/usr/local/bin/python2.7:pipという名前のモジュールはありません'と '/usr/bin/python3.5:それぞれpipという名前のモジュールはありません。しかし、 'pip2.7 freeze'は動作しますが、' pip3.5 freeze'は 'pip3.5:command not found'を返します。思考? –

+0

3.5では 'sudo apt install python3-pip'を試してみてください。 Python 2.7の場合は、 '/usr/local/bin/python2.7 -m ensurepip'を実行してみてください。 Ubuntuはデフォルトでpipをインストールしないように見えます。 – Evert

+0

'ensurepip'ブートストラップモジュールは、' pip'自体をインストールするために一度だけ実行しなければなりません(あなた自身がインストールしたpython2.7の場合のみ、それはパッケージに付属していないためです)。 'pip2あなたが上記で使ったのは? – Evert

関連する問題