web-dev-qa-db-ja.com

yumを壊さずにpythonをアップグレードします

私は最近、CentOSマシンにソースからコンパイルしてPython 2.7.3をインストールしました。 Python 2.7.3は/opt/python2.7にインストールされており、インストール時に/ usr/bin/pythonを変更して新しいバージョンを指すようにしました。私がそれをやったとき、それはおいしいを壊したので、これは明らかに間違っています。私は次のようになります。

There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   No module named yum

Please install a package which provides this module, or
verify that the module is installed correctly.

It's possible that the above module doesn't match the
current version of Python, which is:
2.7.3 (default, May 15 2012, 17:45:42) 
[GCC 4.4.4 20100726 (Red Hat 4.4.4-13)]

If you cannot solve this problem yourself, please go to 
the yum faq at:
  http://yum.baseurl.org/wiki/Faq

python 2.6.6を指すように/ usr/bin/pythonを変更しましたが、現在2.6.6がpythonのデフォルトバージョンです。これを修正する方法はありますか?

53
tbeauvais

CentOS 6およびCentOS 7にPython 2およびPython 3の最新バージョンをインストールする方法について クイックガイド を作成しました。現在はPython 2.7.13およびPython 3.6.0。

Pythonのシステムバージョンを変更することは想定されていません(システムが壊れるからです)。元のシステムバージョンをそのままにしておけば、他のバージョンをインストールしても問題ありません。これは、configureの実行時にカスタムプレフィックス(たとえば/usr/local)を使用し、Pythonビルドのインストール時にmake altinstall(通常のmake installの代わりに)を使用することで実現できます。

Pythonの複数のバージョンを使用可能にすることは、バージョン番号を含むフルネーム(たとえば、「python2.7」または「pip2.7」)を入力することを覚えている限り、通常大きな問題ではありません。 Pythonのすべての作業をvirtualenvから行う場合、バージョニングは自動的に処理されるため、virtualenvをインストールして使用してください。

135
Daniel Eriksson
vim `which yum`
modify #/usr/bin/python to #/usr/bin/python2.4
14
moven

/opt/python2.7/bin/usr/binの前のPATH環境変数に入れるか、単にpython2.7と入力することに慣れます。

5
larsks

pythonz 、pythonbrewのアクティブフォークは、これを簡単にします。以下を使用してバージョンをインストールできます。

# pythonz install 2.7.3

次に、次のシンボリックリンクを設定します。

# ln -s /usr/local/pythonz/pythons/CPython-2.7.3/bin/python2.7 /usr/local/bin/python2.7
# python2.7 --version
Python 2.7.3
2
Boden Garman
ln -s /usr/local/bin/python2.7 /usr/bin/python
1
Gank

Rpmパッケージを試してみたい場合は、最新のFedora rpmに基づいてバイナリパッケージをインストールできますが、RHEL6/CentOS6/ScientificLinux-6用に再コンパイルします:

http://www.jur-linux.org/download/el-updates/6/

宜しくお願いします、

フロリアン・ラ・ロッシュ

0
FlorianLa Roche

次のコマンドを今すぐ実行できることを示すコメント付きの記事を読みました。私は自分自身をテストしていませんので注意してください。

$ yum install -y epel-release
$ yum install -y python36
0
davidp13