GNU/Linux >> Linux の 問題 >  >> Linux

システムツールを壊さずに複数のバージョンのPython(2.7および3.5)をインストールし、Virtualenvを使用して分離環境を作成するにはどうすればよいですか?

今日は、CentOS6.4にPython2.7および3.5バージョンをインストールする方法を説明します。そして、既存のPythonインストール(デフォルトのシステムインストールバージョンはCentOS 6.4では2.6.6)や yum などの他のシステムツールを壊すことなく、これを実行します。 。このチュートリアルの背後にある主な理由は、最近Python 3をインストールして、すべてを壊したことです。python、pip、yumなど…これらのスナップショットは次のとおりです。 yum Pythonのインストール/アップグレード後に壊れた:

#yumyumの実行に必要なPythonモジュールの1つをインポートする際に問題が発生しました。この問題の原因となるエラーは次のとおりです。rpmという名前のモジュールがありませんこのモジュールを提供するパッケージをインストールするか、モジュールが正しくインストールされていることを確認してください。

Pythonはyumのインポートに失敗しました Pythonのインストール/アップグレード後:

#python Python 2.6(r26:66714、2015年12月16日、11:33:08)[GCC 4.4.7 20120313(Red Hat 4.4.7-11)] onlinux2「help」、「copyright」、「詳細については、「クレジット」または「ライセンス」を参照してください。>>> import yum Traceback(最後の最後の呼び出し):ImportErrorのファイル ""、1行目:yumという名前のモジュールがありません>>> 

およびpip 同様に壊れた:

#pipトレースバック(最後の最後の呼び出し):ファイル "/ usr / bin / pip"、5行目、pkg_resourcesからインポートload_entry_point ImportError:pkg_resourcesという名前のモジュールがありません

したがって、学んだ教訓は–Pythonを台無しにしないでください!! (Pythonが壊れると、修正するのは非常に困難です)。つまり、1台のマシンに複数のバージョンのPythonをインストールしたい場合は、正しい方法でインストールしてください。

注:常に新しいバージョンのPythonを非標準の場所(/ usr / local /など)にインストールしてください

 前提条件:  rootが必要です アクセスまたはsudo 特権。

「開発ツール」と必要なライブラリをインストールして、システムでPythonをセットアップする準備をします。

開発ツールのインストール:

 #yumgroupinstall"開発ツール":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::rpm-libs.x86_64 0:4.8.0-47.el6 rpm-python.x86_64 0:4.8.0-47.el6 xz-libs.x86_64 0:4.999.9-0.5 .beta.20091007git.el6完了!

これらのライブラリも必要になる場合があります:

これらのライブラリはPythonをインストールする必要はありませんが、後の段階で必要になる場合があります。

 #yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel :::::::::::::::::::::::::::::::::::::::::::::::::::::ncurses-libs.x86_64 0: 5.7-4.20090207.el6 openssl.x86_64 0:1.0.1e-42.el6_7.2 sqlite.x86_64 0:3.6.20-1.el6_7.2完了!

CentOS6.4でPython2.7をコンパイルしてインストールします

Python 2.7のダウンロード:

#wget http://python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz 
#tar xf Python-2.7.6.tar.xz 

注: tarの最新バージョン .xzを抽出できます ファイル。場合によっては、 tarを使用して抽出できなかった場合 、それでは、ここにあなたを助けるためのガイドがあります。

#cd Python-2.7.6 
#。/ configure --prefix =/ usr / local --enable-unicode =ucs4 --enable-shared LDFLAGS ="-Wl、-rpath / usr / local / lib" ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: configure:./config.statusの作成config.status:Makefile.preの作成config.status:Modules / Setup.configの作成config.status:Misc / python.pcの作成config.status:Modules /ld_so_aixconfigの作成ステータス:pyconfig.hの作成モジュール/セットアップの作成モジュール/Setup.localの作成Makefileの作成

注: / usr / localにPythonをインストールします 。つまり、実行可能ファイルは / usr / local / binにインストールされます。 および/usr / local / libのライブラリ 。 LDFLAGSに注意してください 同様に。

#make &&make altinstall :::::::::::::::::::::::::::::/ usr / local/binコピーbuild/scripts-2.7 / smtpd.py-> / usr / local/binコピーbuild/scripts-2.7 / pydoc-> / usr / local/binコピーbuild/scripts-2.7 / 2to3-> / usr / local/binのモードを/usr/ local / bin/idleから755に変更/usr/ local / bin/smtpd.pyのモードを755に変更/usr/ local / bin/pydocのモードを755に変更/usr/local/bin/2to3から755までinstall_egg_infoを実行.7 / lib-dynload / _sysconfigdata.py * 

注: make altinstallに注意してください –「makeinstall」は両方のバージョンを同じファイルシステムにインストールし、Pythonを台無しにするため、絶対に使用しないでください。

Python 2.7は次の場所にインストールされます:

#ls -ld /usr/local/lib/python2.7/ 

CentOSでPython3.5をコンパイルしてインストールします

#wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tar.xz 
#tar xz Python-3.5.1.tar.xz 
#cd Python-3.5.1 
#./configure --prefix =/ usr / local --enable-shared LDFLAGS ="-Wl、-rpath / usr / local / lib" ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::configure:createing ./config.status config.status:createing Makefile.pre config.status:createing Modules / Setup.config config.status :Misc / python.pc config.statusの作成:Misc / python-config.shの作成config.status:Modules / ld_so_aixの作成config.status:pyconfig.hの作成Modules/Setupの作成Modules/Setup.localの作成Makefileの作成
>
#make &&make altinstall :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::インデックスを無視する:https://pypi.python.org/simple setuptoolsの収集pipの収集収集されたパッケージのインストール:setuptools、pip正常にインストールされたpip-7.1.2 setuptools-18.2 
インストールされているPython3.5:#ls -ld /usr/local/lib/python3.5/ 

SetuptoolsとPythonPipをインストールします:

setuptoolsをインストールしましょう およびpip 上記でインストールしたPythonバージョン(2.7と3.5)の両方の場合:

 #wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py(or) 
 #curl https://raw.githubusercontent.com/pypa/pip/master/contrib/get-pip.py | /usr/local/bin/python2.7   get-pip.pyスクリプトに古い場所を使用しています。https://bootstrap.pypa.io/get-pip.pyから入手できる場所を使用してください 

更新: 上記のコマンドは、見つからないというエラーで失敗します。代わりに、以下のコマンドを使用してpip2.7をインストールしてください。

 #curl https://bootstrap.pypa.io/get-pip.py | /usr/local/bin/python2.7 

Python 2.7のsetuptoolsをインストールします:

#python2.7 ez_setup.py 

Python 3.5用のsetuptoolsをインストールします:

#python3.5 ez_setup.py:::::::::::::::::::::::::インストール済み/usr/local/lib/python3.5/site-packages /setuptools-19.4-py3.5.eggsetuptools==19.4の処理依存関係setuptools==19.4の処理依存関係が終了しました

Python 2.7用のpipのインストール:

#easy_install-2.7 pip::::::::::::::::::::::/usr/local/binへのpipスクリプトのインストール/usr/local/へのpip2.7スクリプトのインストールbinInstallingpip2スクリプトを/usr/local/binInstalled/usr/local/lib/python2.7/site-packages/pip-8.0.0-py2.7.eggpipの依存関係の処理pipの依存関係の処理終了

Python 3.5用のpipのインストール:

#easy_install-3.5 pippipBest matchの検索:pip 7.1.2easy-install.pthファイルへのpip7.1.2の追加pip3.4スクリプトの/usr/ local/binへのインストールpip3スクリプトの/usr/ local/binへのインストールpipスクリプトのインストール/usr/local/binUsing/usr/local/lib/python3.5/site-packagespipの依存関係の処理pipの依存関係の処理の終了

そのため、Pythonにはpipとsetuptoolsの2つのバージョンがあります。これらのPython環境(2.7および3.5)を分離します。

分離されたPython環境をセットアップする方法

そのためには、virtualenv。というパッケージが必要です。

Python 2.7用のvirtualenvをインストールします:

#pip2.7 install virtualenv :::::::::::::::::::::::::::収集されたパッケージのインストール:virtualenv正常にインストールされたvirtualenv-14.0.0 
>

インストールしたら、 virtualenvを探します 以下に示すコマンド:

#virtualenv  virtualenv virtualenv-3.5 

virtualenvを使用して分離された環境を作成しましょう Python 2.7の場合、その仮想環境に py27envという名前を付けます。 (別の名前を設定できます)。

#virtualenv py27env/root/py27env/bin/python2.7に新しいpython実行可能ファイルも作成/root/ py27env / bin / pythonに実行可能ファイルを作成setuptools、pip、wheel...doneをインストール 

分離された環境(サンドボックスと呼ばれる)は、上記のコマンドを実行した現在のディレクトリに作成されます。 py27envという名前のフォルダーを探します (あなたの場合は別の名前かもしれません)

#ls -ld py27env/drwxr-xr-x。 5ルートルート4096Jan21 15:25 py27env / 

サンドボックスpy27envをアクティブ化する必要があります :

#source py27env / bin / activate(py27env)

次に、以下に示すようにPythonのバージョンを確認します。

#python --versionPython 2.7.6 

上記の出力は、Python2.7.6サンドボックスを使用していることを示しています。システムにインストールされたPythonバージョンに戻すには、以下のように非アクティブ化する必要があります。

(py27env)#deactivate 

今すぐバージョンを確認してください:

#python --versionPython2.6.6//これでデフォルトのPython環境に戻ります。

Python3.5用のサンドボックス環境を作成する

virtualenvを使用しました Python 2.5のサンドボックスを作成しますが、Python 3.5の場合は、pyvenv-3.5。という組み込みコマンドを使用します。

#pyvenv-3.5 py35environment(py35environment)

現在のディレクトリに「py35environment」という名前のディレクトリがあります。次に示すように、Python3.5環境をアクティブ化しましょう。

#source py35environment / bin / activate(py35environment)
(py35environment)#python --versionPython 3.5.1 

以下のように非アクティブ化します:

(py35environment)#非アクティブ化
#python --versionPython 2.6.6 

それでおしまい!これで2つの異なるPython環境ができ、何も台無しにすることなくそれを実行できました。このチュートリアルがお役に立てば幸いです。


Linux
  1. Raspberry Piファイアウォール:UFWを使用してインストールおよび管理する方法

  2. Ubuntu20.04にPythonバージョンをインストールして切り替える方法

  3. カーネル/ツール内でツールをコンパイル、インストール、実行するにはどうすればよいですか?

  1. Condaを使用してさまざまなPythonバージョンの仮想環境を作成する

  2. NVM を使用して複数の Node.js バージョンを使用する方法

  3. BTRFS ファイル システムを作成してクエリを実行する方法

  1. Metricbeatを使用してシステムとアプリケーションのメトリックを収集する方法

  2. XBoardに複数のチェスエンジンをインストールしてセットアップする方法

  3. AWSでPythonBoto3を使用してS3バケットを作成する方法