問題描述
我最近通過從源代碼編譯在 CentOS 機(jī)器上安裝了 Python 2.7.3.Python 2.7.3 安裝在/opt/python2.7 中,當(dāng)我安裝它時,我只是將/usr/bin/python 更改為指向新版本.這顯然是錯誤的,因為當(dāng)我這樣做時它打破了百勝.我會得到以下內(nèi)容.
I recently installed Python 2.7.3 on a CentOS machine by compiling from source. Python 2.7.3 is installed at /opt/python2.7 and when I installed it I just changed /usr/bin/python to point to the new version. This apparently is wrong though because when I did it it broke yum. I would get the following.
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
我將/usr/bin/python 更改為指向 python 2.6.6,但現(xiàn)在 2.6.6 是 python 的默認(rèn)版本.知道如何解決這個問題嗎?
I changed /usr/bin/python to point back to the python 2.6.6 but now 2.6.6 is the default version of python. Any idea how to fix this?
推薦答案
我寫了一個快速指南關(guān)于如何在 CentOS 6 和 CentOS 7 上安裝最新版本的 Python 2 和 Python 3.它目前涵蓋 Python 2.7.13 和 Python 3.6.0:
I have written a quick guide on how to install the latest versions of Python 2 and Python 3 on CentOS 6 and CentOS 7. It currently covers Python 2.7.13 and Python 3.6.0:
# Start by making sure your system is up-to-date:
yum update
# Compilers and related tools:
yum groupinstall -y "development tools"
# Libraries needed during compilation to enable all features of Python:
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel expat-devel
# If you are on a clean "minimal" install of CentOS you also need the wget tool:
yum install -y wget
接下來的步驟取決于您安裝的 Python 版本.
The next steps depend on the version of Python you're installing.
對于 Python 2.7.14:
For Python 2.7.14:
wget http://python.org/ftp/python/2.7.14/Python-2.7.14.tar.xz
tar xf Python-2.7.14.tar.xz
cd Python-2.7.14
./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
make && make altinstall
# Strip the Python 2.7 binary:
strip /usr/local/lib/libpython2.7.so.1.0
對于 Python 3.6.3:
For Python 3.6.3:
wget http://python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz
tar xf Python-3.6.3.tar.xz
cd Python-3.6.3
./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
make && make altinstall
# Strip the Python 3.6 binary:
strip /usr/local/lib/libpython3.6m.so.1.0
要安裝 Pip:
# First get the script:
wget https://bootstrap.pypa.io/get-pip.py
# Then execute it using Python 2.7 and/or Python 3.6:
python2.7 get-pip.py
python3.6 get-pip.py
# With pip installed you can now do things like this:
pip2.7 install [packagename]
pip2.7 install --upgrade [packagename]
pip2.7 uninstall [packagename]
您不應(yīng)該更改 Python 的系統(tǒng)版本,因為它會破壞系統(tǒng)(正如您所發(fā)現(xiàn)的).只要您不理會原始系統(tǒng)版本,安裝其他版本就可以正常工作.這可以通過在運行 configure 時使用自定義前綴(例如 /usr/local
)和使用 make altinstall
(而不是普通的 make install
) 安裝您的 Python 版本時.
You are not supposed to change the system version of Python because it will break the system (as you found out). Installing other versions works fine as long as you leave the original system version alone. This can be accomplished by using a custom prefix (for example /usr/local
) when running configure, and using make altinstall
(instead of the normal make install
) when installing your build of Python.
只要您記得輸入包含版本號的全名(例如python2.7"或pip2.7"),擁有多個可用的 Python 版本通常不是什么大問題.如果您從 virtualenv 完成所有 Python 工作,則版本控制會為您處理,因此請確保您安裝并使用 virtualenv!
Having multiple versions of Python available is usually not a big problem as long as you remember to type the full name including the version number (for example "python2.7" or "pip2.7"). If you do all your Python work from a virtualenv the versioning is handled for you, so make sure you install and use virtualenv!
這篇關(guān)于升級python而不破壞yum的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!