常常遇到這樣的狀況:python
此時須要在系統中安裝多個Python,但又不能影響系統自帶的Python,即須要實現Python的多版本共存。 pyenv 就是這樣一個Python版本管理器。mysql
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc $ echo 'eval "$(pyenv init -)"' >> ~/.bashrc $ exec $SHELL -l
$ pyenv install --list
該命令會列出能夠用pyenv安裝的Python版本,僅列舉幾個:linux
.7.8 # Python 2最新版本 .4.1 # Python 3最新版本 anaconda-4.0.0 # 支持Python 2.6和2.7 anaconda3-4.0.0 # 支持Python 3.3和3.4
其中形如 x.x.x 這樣的只有版本號的爲Python官方版本,其餘的形如 xxxxx-x.x.x 這種既有名稱又有版本後的屬於「衍生版」或發行版。git
在安裝Python時須要首先安裝其依賴的其餘軟件包,已知的一些須要預先安裝的庫以下。github
在CentOS/RHEL/Fedora下:sql
sudo yum install readline readline-devel readline-static sudo yum install openssl openssl-devel openssl-static sudo yum install sqlite-devel sudo yum install bzip2-devel bzip2-libs
使用以下命令便可安裝python 3.4.1:shell
$ pyenv install 3.4.1 -v
該命令會從github上下載python的源代碼,並解壓到/tmp目錄下,而後在/tmp中執行編譯工做。若依賴包沒有安裝,則會出現編譯錯誤,須要在安裝依賴包後從新執行該命令。數據庫
若是網絡不太好,用pyenv下載會比較慢,能夠先執行該命令,而後到 ~/.pyenv/cache 目錄下查看要下載的文件的文件名,而後本身到官方網站下載,並將文件放在 ~/.pyenv/cache 目錄下(~/.pyenv/cache/ 通常須要手動建立)。pyenv會檢查文件的完整性,若確認無誤,則不會再從新下載。centos
對於科研環境,更推薦安裝專爲科學計算準備的Anaconda發行版, pyenv install anaconda-4.0.0 安裝Python 2.x版本, pyenv install anaconda3-4.0.0 安裝Python 3.x版本;bash
$ pyenv versions * system (set by /home/seisman/.pyenv/version) .4.1
其中的星號表示當前正在使用的是系統自帶的python。
$ pyenv global 3.4.1 $ pyenv versions system * 3.4.1 (set by /home/seisman/.pyenv/version)
當前全局的python版本已經變成了3.4.1。也能夠使用 pyenv local 或 pyenv shell 臨時改變python版本。
$ python Python 3.4.1 (default, Sep 10 2014, 17:10:18) [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
[suhong@localhost ~]$ pyenv versions * system (set by /home/suhong/.python-version) anaconda3-4.1.1
2.切換至高版本
[suhong@localhost ~]$ pyenv local anaconda3-4.1.1 (anaconda3-4.1.1) [suhong@localhost ~]$ python Python 3.5.2 |Anaconda 4.1.1 (64-bit)| (default, Jul 2 2016, 17:53:06) [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
3.切換至低版本
(anaconda3-4.1.1) [suhong@localhost ~]$ pyenv local system [suhong@localhost ~]$ python Python 2.7.5 (default, Sep 15 2016, 22:37:39) [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
4.切換低版本後發現python2.7.5沒有pip
1. 下載setuptools及pip的源碼包
setuptools與pip都是python的模塊
setuptools源碼包: https://pypi.python.org/pypi/setuptools
pip源碼包: https://pypi.python.org/pypi/pip#downloads
2. 安裝setuptools與pip
目前下載的版本是setuptools-12.0.5.tar.gz與pip-6.0.6.tar.gz
用tar命令解壓, 格式:tar -xzvf xxxx.tar.gz
用cd打開該文件夾,格式:cd xxxx
用python命令安裝,格式:python setup.py install
3.原本照理在python安裝package用命令格式:pip install xxxx
但出現錯誤,例如:pip install ipython
出現錯誤:
Exception: Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/pip-8.1.2-py2.7.egg/pip/basecommand.py", line 215, in main status = self.run(options, args) File "/usr/lib/python2.7/site-packages/pip-8.1.2-py2.7.egg/pip/commands/install.py", line 317, in run prefix=options.prefix_path, File "/usr/lib/python2.7/site-packages/pip-8.1.2-py2.7.egg/pip/req/req_set.py", line 742, in install **kwargs File "/usr/lib/python2.7/site-packages/pip-8.1.2-py2.7.egg/pip/req/req_install.py", line 831, in install self.move_wheel_files(self.source_dir, root=root, prefix=prefix) File "/usr/lib/python2.7/site-packages/pip-8.1.2-py2.7.egg/pip/req/req_install.py", line 1032, in move_wheel_files isolated=self.isolated, File "/usr/lib/python2.7/site-packages/pip-8.1.2-py2.7.egg/pip/wheel.py", line 346, in move_wheel_files clobber(source, lib_dir, True) File "/usr/lib/python2.7/site-packages/pip-8.1.2-py2.7.egg/pip/wheel.py", line 317, in clobber ensure_dir(destdir) File "/usr/lib/python2.7/site-packages/pip-8.1.2-py2.7.egg/pip/utils/__init__.py", line 83, in ensure_dir os.makedirs(path) File "/usr/lib64/python2.7/os.py", line 157, in makedirs mkdir(name, mode) OSError: [Errno 13] Permission denied: '/usr/lib64/python2.7/site-packages/pygments'
後來發現是權限問題,應該用「sudo pip install xxxx」,結果問題迎刃而解
5.安裝scrapy,出現一些問題
compilation terminated. error: command 'gcc' failed with exit status 1
用安裝Python模塊出現error: command 'gcc' failed with exit status 1 ,明明裝了gcc的,怎麼會不行呢,而後發覺是failed不是not found,這說明這個錯誤個gcc沒多大關係,應該是缺乏某些功能模塊,而後谷歌了一下,前後安裝了python-devel,libffi-devel後仍是不行,最後發覺要安裝openssl-devel才行
可以下命令行安裝:
yum install gcc libffi-devel python-devel openssl-devel
6.pip install MySQL
-
python(出現
EnvironmentError: mysql_config not found)
解決辦法:安裝包MySQL-devel-5.1.7-0.i386.rpm
MySQL-shared-5.1.7-0.i386.rpm 後,再次進行install就解決了
機智的我只用了
sudo yum install MySQL-devel就解決了