linux上現在裝著python2.6,我想把python替換為python3.4,我應該怎麼做?

linux上現在裝著python2.6,我想把python替換為python3.4,我應該怎麼做?是先把2.6卸載,再安裝3.4,還是直接按照3.4就能替換2.6?

求詳細安裝方法(附帶linux命令最好)

linux版本是(uname -a的執行結果):

Linux hbttdb1 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux


立刻停下!

從你「有命令行最好」就看出來你根本不知道自己在做什麼,我已經修過好幾個python被刪的系統了。


明明可以共存的……

如果是 ubuntu 的話

sudo apt-get install python3

如果是 CentOS

參考 IUS


yum 使用的就是 python2 開發,你自己看著辦?

其他人都給出答案

1. 如果只是裝py3,你直接裝就好了,不衝突;如果覺得 python3 這個3讓你很困擾,你直接在你的環境變化中,把python3取個別名:

$ cat ~/.bashrc

...

alias python="/usr/local/bin/python3"

alias pip="/usr/local/bin/pip3」

2. 如果想要裝py27,那就只能裝 pyenv(我一直都在用,如果你使用做數據分析,推薦用anaconda3,numpy 就不用折騰了 ) 之類的版本控制工具了,介於你問的是py3,就不詳細展開了


那個直接替換 bin 文件夾文件的做法是不好的,因為其他使用 python 的軟體會不小心打開了 python 3,出一些奇奇怪怪的問題。如果你一定不想每次打 python3,可以用 alias (自行搜索一下) 的方法,把 「python」 這個命令當作 「python3」 的別名。

本來這個方法是靠譜的,但是有些軟體作者習慣非常不好,不用全路徑名去啟動 python,還是會出現誤打開 python 3 的問題。

還是推薦你麻煩一點,每次打 python3 比較好。


可以用 yyuu/pyenv 或 saghul/pythonz 來幫你安裝

或者用發行版包管理系統的第三方源


不要更改默認設置,不過做這種愚蠢的替代,安裝上,老老實實的添加環境,老老實實的用python3 這樣的啟動。


裝ArchLinux,默認的Python總是最新的,比如我回答的這個時間節點,/usr/bin/python 是3.6.0版本的


不得不說,CentOS6還在用python2.6,委實過於蛋疼了點。。。。

個人建議,立刻換一個發行版。你不要在這些細節上死磕,現在不是時候。


友情提示題主,不要嘗試直接替換系統默認的Python2,Python2和3並不兼容,暴力替換一定有問題,對系統穩定性有很大影響,rpm系Linux中yum是依賴Python2的,就算你手動改了yum(不是網上教程中簡單的修改一個文件,而是yum相關都要改)也不保證是否有其他工具受次影響。

如果你需要用Python3,肯定是有方法的:

首先你可以考慮裝個Anaconda3,Anaconda是一個集成Python3的科學計算環境,具體可以百度谷歌,很簡單比較適合新手,安裝的時候輸兩個yes就行了。

如果不滿意以上方法只能手工配置了,原則就是不碰系統的Python2,新加入自己的Python3環境。似乎題主是新手,那我就寫詳細點吧,不過命令你最好自動補全,我手機打字難免有錯誤。首先你要下載官網的源碼包手動編譯,我記得官網好像沒有Linux平台的二進位包。如果沒有特殊需求的話編譯過程如下:

./configure --prefix=你要的安裝路徑 --enable-optimizations

sudo make -j7

sudo make test

sudo make install

把安裝路徑換成你的,注意不要覆蓋任何系統目錄。-j7中數字可以換成你的CPU核心數以加快編譯速度。安裝完畢如果沒有任何錯誤提示的話去安裝目錄下檢查一下,在bin子目錄下你應該已經可以使用./python3 -V查看版本信息了,說明編譯成功。但現在你還不能直接在終端中用python3命令來使用你安裝的Python3,因為系統還不知道你的Python的位置,剛才的編譯過程僅僅類似一個複製或者解壓縮的過程,而沒有把這一信息告訴系統。此時你可以編輯/etc/profile文件,在末尾加上export PATH=你的Python3安裝路徑/bin:$PATH,記得是在末尾追加,不要覆蓋原本的任何內容,中間那個是英文狀態的冒號,不要打錯了。保存退出之後是不能立刻看到效果的,需要執行這條命令source /etc/profile,之後你就可以在終端中任何位置使用python3這條命令了。

如果你還要更進一步,希望直接使用python命令而不是python3命令來啟動Python3,也可以實現。同樣不要動系統目錄中的文件,也不需要建立鏈接,這都可能對其他依賴Python2系統程序造成影響。我推薦利用alias來實現。首先使用echo $SHELL命令看一下自己使用的是什麼SHELL,大部分人是Bash,那麼編輯一下~/.bashrc,在末尾加上alias python="你的安裝目錄/bin/python3",保存退出,同樣需要source ~/.bashrc才能生效。如果你用兼容Bash的其他Shell,修改方式類似,配置文件為~/.zshrc。完成這些操作以後最好重啟一下。

現在你應該能愉快的使用Python3了。原諒我沒圖,因為我是用手機回答的_(:з」∠)_。


# 1. 首先你這個問題提的不太科學, Linux 有很多種發行版, 流行的分 deb 系如 Ubuntu/Debian 和 rpm 系如 Redhat/CentOS, 不同包管理系統處理這種替換系統關鍵組件都不太一樣, 所以你應該說明你是哪個系統, 而不是只說是 Linux 系統. 當然啦, 老司機表示你這個系統多半是 rpm 系的 CentOS6 了.

# 2. 其次任何一種 *nix 系統中是可以支持運行多個 Python 環境的

# 3. 任何時候都不要輕易嘗試替換一個上古系統的系統級組件, 會被各種依賴問題整死. 比如你說的 Python 2.6 據我所知 CentOS6 中你把他換成 3.x 以後 yum 是要罷工的

# 4. 解決方案(以CentOS6.6為例)

# 系統信息:
$ python --version
Python 2.6.6
$ which python
/usr/bin/python

# 安裝 Miniconda from http://conda.pydata.org/miniconda.html
# 以 64 位 Python 3.5 為例

$ wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ chmod +x Miniconda3-latest-Linux-x86_64.sh
$ ./Miniconda3-latest-Linux-x86_64.sh
# 一路 Next / Yes 到底即可

# 使用清華 Anaconda 鏡像加速 package 下載速度
# https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
$ conda config --set show_channel_urls yes

# 新建一個虛擬 Python 運行環境, 名字姑且叫 py34 吧
# conda 可以自動給你解決好需要的依賴, 只在當前用戶環境有效, 不影響系統
# 比如下面我們在後面可以指定python的版本號為3.4

$ conda create -n py34 python=3.4
# 以下是運行此命令後的標準輸出信息
Fetching package metadata .............
Solving package specifications: ..........

Package plan for installation in environment /prodata/miniconda2/envs/py34:

The following packages will be downloaded:

package | build
---------------------------|-----------------
openssl-1.0.2j | 0 3.2 MB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
readline-6.2 | 2 606 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
sqlite-3.13.0 | 0 4.0 MB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
tk-8.5.18 | 0 1.9 MB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
xz-5.2.2 | 1 669 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
zlib-1.2.8 | 3 101 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
python-3.4.5 | 0 15.2 MB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
setuptools-27.2.0 | py34_0 528 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
wheel-0.29.0 | py34_0 82 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
pip-9.0.1 | py34_1 1.7 MB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
------------------------------------------------------------
Total: 27.9 MB

The following NEW packages will be INSTALLED:

openssl: 1.0.2j-0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
pip: 9.0.1-py34_1 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
python: 3.4.5-0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
readline: 6.2-2 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
setuptools: 27.2.0-py34_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
sqlite: 3.13.0-0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
tk: 8.5.18-0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
wheel: 0.29.0-py34_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
xz: 5.2.2-1 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
zlib: 1.2.8-3 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free

Proceed ([y]/n)? y

Pruning fetched packages from the cache ...
Fetching packages ...
openssl-1.0.2j 100% |#######################################################| Time: 0:00:00 9.27 MB/s
readline-6.2-2 100% |#######################################################| Time: 0:00:00 5.78 MB/s
sqlite-3.13.0- 100% |#######################################################| Time: 0:00:00 5.95 MB/s
tk-8.5.18-0.ta 100% |#######################################################| Time: 0:00:00 8.25 MB/s
xz-5.2.2-1.tar 100% |#######################################################| Time: 0:00:00 6.23 MB/s
zlib-1.2.8-3.t 100% |#######################################################| Time: 0:00:00 2.93 MB/s
python-3.4.5-0 100% |#######################################################| Time: 0:00:01 10.27 MB/s
setuptools-27. 100% |#######################################################| Time: 0:00:00 5.64 MB/s
wheel-0.29.0-p 100% |#######################################################| Time: 0:00:00 3.98 MB/s
pip-9.0.1-py34 100% |#######################################################| Time: 0:00:00 8.43 MB/s
Extracting packages ...
[ COMPLETE ]|##########################################################################| 100%
Linking packages ...
[ COMPLETE ]|##########################################################################| 100%
#
# To activate this environment, use:
# &> source activate py34
#
# To deactivate this environment, use:
# &> source deactivate py34
#

# 很輕鬆就安裝完成, 上面的文字提示你激活新創建的 py34 環境
$ source activate py34
(py34) [ngs@cluster ~]$

# 看看系統信息
(py34) [ngs@cluster ~]$ python --version
Python 3.4.5 :: Continuum Analytics, Inc.
(py34) [ngs@cluster ~]$ which python
/prodata/miniconda2/envs/py34/bin/python


包管理器install python3就好了吧,可能最新的發行版已經自帶3.5+了。python命令就是2.7,python3命令對應3.5+


直接裝。

然後:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

需要切換到Python2,執行:

sudo update-alternatives --config python

按照提示輸入選擇數字回車即可。

可以將任意版本python安裝到任意位置,然後使用update-alternatives將其設置為系統默認python。


2與3並存,直接用3替換了2的話

yum 就廢了


其實可以試試docker,每個鏡像可以單獨安裝python,互不影響


題主要先說一下自己的linux版本呀。

由於我用的ubuntu,就說一下ubuntu的安裝方法吧。ubuntu其實自帶python,所以只需要apt-get一下就好。

#sudo apt-get install python3

另:感覺沒必要計較是python2還是3。


不說明當前使用的linux發行版就是耍流氓!


現在都3.6了,你用3.4換2.6根本沒意義好吧


不建議替換自帶的Python2!

cnblog上有有人寫了一篇文章介紹如何在Linux系統上再安裝Python3。很簡單的。

http://www.cnblogs.com/CongZhang/p/5619093.html


在卸載Python2.x的時候,你還是要先看一下系統本身是不是有些軟體依賴著Python2.x才好,比如contos的yum

安裝python3 的話,去到官網下載下來源碼編譯安裝就行了 再設置一個到python3 的軟鏈接(具體命令我忘了,你可以自己搜一下)就可以了


不建議卸載,除非你的linux是在本地編譯的。而邏輯問題是你如果會本地編譯那麼也不會提這樣的問題了。


推薦閱讀:

推薦幾本Python3相關書籍?最好分一下基礎、進階、高級
在Python中下面這句話怎麼理解?
如何通過html來執行python腳本?
據說Python中tuple的速度比list快,如果tuple中包含有list元素,tuple是如何保持比list快的?
怎麼解決Python3亂碼問題?

TAG:Python | Linux | Python3x |