騰訊雲伺服器ubuntu16.04系統下安裝Python版本管理工具pyenv
一、 系統環境
騰訊雲提供的系統是ubuntu 16.04 LTS,系統預設的Python版本是2.7.12,我想要安裝3.6和其他的版本。
比較方便的是騰訊雲已經預設安裝好了git和curl命令,可以很方便的下載安裝軟體
二、 pyenv的安裝
- 第一步 下載並安裝pyenv
$ 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就已經安裝好了,我們輸入pyenv可以檢視具體用法和簡介
[email protected]:~$ pyenv pyenv 1.2.7-13-ge389c8d Usage: pyenv <command> [<args>] Some useful pyenv commands are: commands List all available pyenv commands local Set or show the local application-specific Python version global Set or show the global Python version shell Set or show the shell-specific Python version install Install a Python version using python-build uninstall Uninstall a specific Python version rehash Rehash pyenv shims (run this after installing executables) version Show the current Python version and its origin versions List all Python versions available to pyenv which Display the full path to an executable whence List all Python versions that contain the given executable See `pyenv help <command>' for information on a specific command. For full documentation, see: https://github.com/pyenv/pyenv#readme
我們還可以通過下面這個命令來檢視可以安裝的python版本:
$ pyenv install --list
在安裝Python之前,必須要安裝python所需要的依賴包,這個必須要安裝,否則會安裝Python會失敗的:
$ sudo apt-get install libc6-dev gcc
$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
好了,我們可以開始安裝Python了:
$ pyenv install 3.6.3 -v
需要注意的是,這種下載方法是從Python官網下載安裝包,速度可能會非常慢,所以有個快速方法是先從搜狐提供的映象網站下載指定的Python版本到~/.pyenv/cache
目錄下:
wget http://mirrors.sohu.com/python/3.6.3/Python-3.6.3.tar.xz -P ~/.pyenv/cache
然後再用pyenv install
命令安裝,就可以很快完成了
$ pyenv install 3.6.3
安裝完成之後,需要使用如下命令對資料庫進行更新
$ pyenv rehash
檢視當前已經安裝的python版本:
[email protected]:~$ pyenv versions
* system (set by /home/ubuntu/.pyenv/version)
3.6.3
其中星號代表是當前系統正在使用的python版本是系統自帶的。
三、 安裝虛擬環境並切換Python版本
按照上面步驟我們已經安裝好了可用的Python版本,下面我們再下載一個pyenv外掛-virtualenv
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
但此時還不能使用。我們需要將以下命令新增到~/.bashrc
檔案結尾,這樣就可以在命令列使用virtualenv了
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
$ source ~/.bashrc
這樣就可以使用了。
然後我們建立Python虛擬環境,我們先在當前目錄下建立一個資料夾:
[email protected]:~$ mkdir MyPython
[email protected]:~$ cd MyPython/
[email protected]:~/MyPython$ ll
total 8
drwxrwxr-x 2 ubuntu ubuntu 4096 Oct 30 19:06 ./
drwxr-xr-x 8 ubuntu ubuntu 4096 Oct 30 19:06 ../
[email protected]:~/MyPython$
好了,我們進入到MyPython資料夾下了,利用pyenv virtualenv
命令建立虛擬環境
[email protected]:~/mypython$ pyenv virtualenv 3.6.3 env363
Using base prefix '/home/ubuntu/.pyenv/versions/3.6.3'
New python executable in /home/ubuntu/.pyenv/versions/3.6.3/envs/env363/bin/python3.6
Also creating executable in /home/ubuntu/.pyenv/versions/3.6.3/envs/env363/bin/python
Please make sure you remove any previous custom paths from your /home/ubuntu/.pydistutils.cfg file.
Installing setuptools, pip, wheel...done.
Requirement already satisfied: setuptools in /home/ubuntu/.pyenv/versions/3.6.3/envs/env363/lib/python3.6/site-packages
Requirement already satisfied: pip in /home/ubuntu/.pyenv/versions/3.6.3/envs/env363/lib/python3.6/site-packages
注意,命令中的3.6.3
必須是一個安裝前面步驟已經安裝好的python版本, 否則會出錯。env363
則是自己起的名字,用來標註這個虛擬環境。
然後我們通過pyenv versions
命令來檢視當前的虛擬環境
[email protected]:~/mypython$ pyenv versions
system
* 3.6.3 (set by /home/ubuntu/mypython/.python-version)
3.6.3/envs/env363
env363
最後,我們利用pyenv的local方法來切換到建立好的虛擬環境
[email protected]:~/mypython$ pyenv local env363
(env363) [email protected]:~/mypython$
看到命令列前面的那個括號就說明我們成功了。然後檢視當前環境預設Python版本:
(env363) [email protected]:~/mypython$ python
Python 3.6.3 (default, Oct 30 2018, 16:30:54)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
用pyenv local
命令是為了保證只有當前資料夾以及往下遞迴的資料夾裡的環境是Python3.6.3,其他資料夾以及系統Python環境不會改變
(env363) [email protected]:~/mypython$ cd
[email protected]:~$
可以回到主目錄下括號就消失了,說明當前沒有在用虛擬環境
[email protected]:~$ python
Python 2.7.12 (default, Dec 4 2017, 14:50:18)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
可以看到系統預設的python版本沒變。
下面我們就可以可以在編輯器上連線遠端伺服器來進行Python開發了,skr~