Linux下python开发环境配置

Posted huanggaoyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下python开发环境配置相关的知识,希望对你有一定的参考价值。

1.安装pyenv

是一个全局的python版本管理工具、能够进行全局的python版本切换、使用pyenv之后可以再服务器上安装多个python版本 。

第一步:安装git curl

[email protected]:/$ sudo apt-get install git curl
[sudo] hgy 的密码: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
将会同时安装下列软件:
  git-man liberror-perl
建议安装:
  git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs
  git-mediawiki git-svn
下列【新】软件包将被安装:
  curl git git-man liberror-perl
升级了 0 个软件包,新安装了 4 个软件包,要卸载 0 个软件包,有 61 个软件包未被升级。
需要下载 4,052 kB 的归档。
解压缩后会消耗 26.0 MB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 curl amd64 7.47.0-1ubuntu2.8 [139 kB]
获取:2 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 liberror-perl all 0.17-1.2 [19.6 kB]
获取:3 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 git-man all 1:2.7.4-0ubuntu1.4 [736 kB]
获取:4 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 git amd64 1:2.7.4-0ubuntu1.4 [3,158 kB]
已下载 4,052 kB,耗时 20秒 (199 kB/s)                                                                  
正在选中未选择的软件包 curl。
(正在读取数据库 ... 系统当前共安装有 184038 个文件和目录。)
正准备解包 .../curl_7.47.0-1ubuntu2.8_amd64.deb  ...
正在解包 curl (7.47.0-1ubuntu2.8) ...
正在选中未选择的软件包 liberror-perl。
正准备解包 .../liberror-perl_0.17-1.2_all.deb  ...
正在解包 liberror-perl (0.17-1.2) ...
正在选中未选择的软件包 git-man。
正准备解包 .../git-man_1%3a2.7.4-0ubuntu1.4_all.deb  ...
正在解包 git-man (1:2.7.4-0ubuntu1.4) ...
正在选中未选择的软件包 git。
正准备解包 .../git_1%3a2.7.4-0ubuntu1.4_amd64.deb  ...
正在解包 git (1:2.7.4-0ubuntu1.4) ...
正在处理用于 man-db (2.7.5-1) 的触发器 ...
正在设置 curl (7.47.0-1ubuntu2.8) ...
正在设置 liberror-perl (0.17-1.2) ...
正在设置 git-man (1:2.7.4-0ubuntu1.4) ...
正在设置 git (1:2.7.4-0ubuntu1.4) ...
[email protected]:/$ sudo rm -rf ~/.pyenv
[email protected]:/$

第二步:开始安装pyenv

[email protected]:/$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   148  100   148    0     0     44      0  0:00:03  0:00:03 --:--:--    44
100  2194  100  2194    0     0    404      0  0:00:05  0:00:05 --:--:--  1073
正克隆到 ‘/home/hgy/.pyenv‘...
remote: Counting objects: 610, done.
remote: Compressing objects: 100% (423/423), done.
remote: Total 610 (delta 293), reused 273 (delta 97), pack-reused 0
接收对象中: 100% (610/610), 356.94 KiB | 30.00 KiB/s, 完成.
处理 delta 中: 100% (293/293), 完成.
检查连接... 完成。
正克隆到 ‘/home/hgy/.pyenv/plugins/pyenv-doctor‘...
remote: Counting objects: 11, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 11 (delta 1), reused 6 (delta 1), pack-reused 0
展开对象中: 100% (11/11), 完成.
检查连接... 完成。
正克隆到 ‘/home/hgy/.pyenv/plugins/pyenv-installer‘...
remote: Counting objects: 17, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 17 (delta 2), reused 9 (delta 0), pack-reused 0
展开对象中: 100% (17/17), 完成.
检查连接... 完成。
正克隆到 ‘/home/hgy/.pyenv/plugins/pyenv-update‘...
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 10 (delta 1), reused 6 (delta 0), pack-reused 0
展开对象中: 100% (10/10), 完成.
检查连接... 完成。
正克隆到 ‘/home/hgy/.pyenv/plugins/pyenv-virtualenv‘...
remote: Counting objects: 54, done.
remote: Compressing objects: 100% (48/48), done.
remote: Total 54 (delta 10), reused 19 (delta 0), pack-reused 0
展开对象中: 100% (54/54), 完成.
检查连接... 完成。
正克隆到 ‘/home/hgy/.pyenv/plugins/pyenv-which-ext‘...
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 10 (delta 1), reused 5 (delta 0), pack-reused 0
展开对象中: 100% (10/10), 完成.
检查连接... 完成。
?
WARNING: seems you still have not added ‘pyenv‘ to the load path.
?
# Load pyenv automatically by adding
# the following to ~/.bash_profile:
?
export PATH="/home/hgy/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
[email protected]:/$ 

注意:会在/home/hgy/ 目录下有一个.pyenv的隐藏文件夹

第三步:修改vim ~/.bashrc、在最后一行写入以下内容

export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
?
[email protected]:/$ vim ~/.bashrc 
[email protected]:/$ 

第四步:让配置文件立即生效

[email protected]:/$ source ~/.bashrc 
[email protected]:/$

第五步:更新pyenv(看到Already up-to-date.说明更新完成)

[email protected]:/$ pyenv update
Updating /home/hgy/.pyenv...
来自 https://github.com/pyenv/pyenv
 * branch            master     -> FETCH_HEAD
Already up-to-date.
Updating /home/hgy/.pyenv/plugins/pyenv-doctor...
来自 https://github.com/pyenv/pyenv-doctor
 * branch            master     -> FETCH_HEAD
Already up-to-date.
Updating /home/hgy/.pyenv/plugins/pyenv-installer...
来自 https://github.com/pyenv/pyenv-installer
 * branch            master     -> FETCH_HEAD
Already up-to-date.
Updating /home/hgy/.pyenv/plugins/pyenv-update...
来自 https://github.com/pyenv/pyenv-update
 * branch            master     -> FETCH_HEAD
Already up-to-date.
Updating /home/hgy/.pyenv/plugins/pyenv-virtualenv...
来自 https://github.com/pyenv/pyenv-virtualenv
 * branch            master     -> FETCH_HEAD
Already up-to-date.
Updating /home/hgy/.pyenv/plugins/pyenv-which-ext...
来自 https://github.com/pyenv/pyenv-which-ext
 * branch            master     -> FETCH_HEAD
Already up-to-date.
[email protected]:/$ 

  

2.使用pyenv

2.1 查看pyenv支持的python版本

[email protected]:/$ pyenv install --list
Available versions:
  2.1.3
  2.2.3
  2.3.7
  2.4
  2.4.1
  2.4.2
  ......

  

2.2 查看pyenv可以管理的python版本

[email protected]:/$ pyenv versions
  2.7.9
* 3.6.4 (set by /home/xiaohuang/.pyenv/version)

 

注意:

1)*号表示默认版本

2)在安装pyenv之前,系统已经默认安装了2.7和3.6版本python,pyenv没有权利去管理这两个版本(解决方案:先卸载系统自带的python版本,在使用pyenv重新安装)

3.使用pyenv安装python

第一步:安装依赖包

[email protected]:/$ sudo apt-get install gcc libc6-dev make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev llvm 
[sudo] hgy 的密码: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
build-essential 已经是最新版 (12.1ubuntu2)。
gcc 已经是最新版 (4:5.3.1-1ubuntu1)。
make 已经是最新版 (4.1-6)。
libc6-dev 已经是最新版 (2.23-0ubuntu10)。
将会同时安装下列软件:
  binfmt-support bzip2-doc libffi-dev libjsoncpp1 libreadline6-dev libssl-doc libtinfo-dev llvm-3.8
  llvm-3.8-dev llvm-3.8-runtime llvm-runtime
建议安装:
  readline-doc sqlite3-doc llvm-3.8-doc
下列【新】软件包将被安装:
  binfmt-support bzip2-doc libbz2-dev libffi-dev libjsoncpp1 libreadline-dev libreadline6-dev
  libsqlite3-dev libssl-dev libssl-doc libtinfo-dev llvm llvm-3.8 llvm-3.8-dev llvm-3.8-runtime
  llvm-runtime zlib1g-dev
升级了 0 个软件包,新安装了 17 个软件包,要卸载 0 个软件包,有 61 个软件包未被升级。
需要下载 22.2 MB 的归档。
解压缩后会消耗 140 MB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 binfmt-support amd64 2.1.6-1 [50.7 kB]
获取:2 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 bzip2-doc all 1.0.6-8 [295 kB]
获取:3 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libbz2-dev amd64 1.0.6-8 [29.1 kB]
获取:4 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libtinfo-dev amd64 6.0+20160213-1ubuntu1 [77.4 kB]
获取:5 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libreadline6-dev amd64 6.3-8ubuntu2 [124 kB]
获取:6 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libreadline-dev amd64 6.3-8ubuntu2 [992 B]
获取:7 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libsqlite3-dev amd64 3.11.0-1ubuntu1 [508 kB]
获取:8 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 zlib1g-dev amd64 1:1.2.8.dfsg-2ubuntu4.1 [168 kB]
获取:9 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libssl-dev amd64 1.0.2g-1ubuntu4.13 [1,342 kB]
获取:10 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libssl-doc all 1.0.2g-1ubuntu4.13 [1,079 kB]
获取:11 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 llvm-3.8-runtime amd64 1:3.8-2ubuntu4 [72.3 kB]
获取:12 http://cn.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 llvm-runtime amd64 1:3.8-33ubuntu3.1 [2,756 B]
获取:13 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 llvm-3.8 amd64 1:3.8-2ubuntu4 [1,524 kB]
获取:14 http://cn.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 llvm amd64 1:3.8-33ubuntu3.1 [3,196 B]
获取:15 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libjsoncpp1 amd64 1.7.2-1 [73.0 kB]      
获取:16 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libffi-dev amd64 3.2.1-4 [161 kB]        
获取:17 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 llvm-3.8-dev amd64 1:3.8-2ubuntu4 [16.7 MB]
已下载 22.2 MB,耗时 1分 41秒 (218 kB/s)                                                               
正在选中未选择的软件包 binfmt-support。
(正在读取数据库 ... 系统当前共安装有 184860 个文件和目录。)
正准备解包 .../binfmt-support_2.1.6-1_amd64.deb  ...
正在解包 binfmt-support (2.1.6-1) ...
正在选中未选择的软件包 bzip2-doc。
正准备解包 .../bzip2-doc_1.0.6-8_all.deb  ...
正在解包 bzip2-doc (1.0.6-8) ...
正在选中未选择的软件包 libbz2-dev:amd64。
正准备解包 .../libbz2-dev_1.0.6-8_amd64.deb  ...
正在解包 libbz2-dev:amd64 (1.0.6-8) ...
正在选中未选择的软件包 libtinfo-dev:amd64。
正准备解包 .../libtinfo-dev_6.0+20160213-1ubuntu1_amd64.deb  ...
正在解包 libtinfo-dev:amd64 (6.0+20160213-1ubuntu1) ...
正在选中未选择的软件包 libreadline6-dev:amd64。
正准备解包 .../libreadline6-dev_6.3-8ubuntu2_amd64.deb  ...
正在解包 libreadline6-dev:amd64 (6.3-8ubuntu2) ...
正在选中未选择的软件包 libreadline-dev:amd64。
正准备解包 .../libreadline-dev_6.3-8ubuntu2_amd64.deb  ...
正在解包 libreadline-dev:amd64 (6.3-8ubuntu2) ...
正在选中未选择的软件包 libsqlite3-dev:amd64。
正准备解包 .../libsqlite3-dev_3.11.0-1ubuntu1_amd64.deb  ...
正在解包 libsqlite3-dev:amd64 (3.11.0-1ubuntu1) ...
正在选中未选择的软件包 zlib1g-dev:amd64。
正准备解包 .../zlib1g-dev_1%3a1.2.8.dfsg-2ubuntu4.1_amd64.deb  ...
正在解包 zlib1g-dev:amd64 (1:1.2.8.dfsg-2ubuntu4.1) ...
正在选中未选择的软件包 libssl-dev:amd64。
正准备解包 .../libssl-dev_1.0.2g-1ubuntu4.13_amd64.deb  ...
正在解包 libssl-dev:amd64 (1.0.2g-1ubuntu4.13) ...
正在选中未选择的软件包 libssl-doc。
正准备解包 .../libssl-doc_1.0.2g-1ubuntu4.13_all.deb  ...
正在解包 libssl-doc (1.0.2g-1ubuntu4.13) ...
正在选中未选择的软件包 llvm-3.8-runtime。
正准备解包 .../llvm-3.8-runtime_1%3a3.8-2ubuntu4_amd64.deb  ...
正在解包 llvm-3.8-runtime (1:3.8-2ubuntu4) ...
正在选中未选择的软件包 llvm-runtime。
正准备解包 .../llvm-runtime_1%3a3.8-33ubuntu3.1_amd64.deb  ...
正在解包 llvm-runtime (1:3.8-33ubuntu3.1) ...
正在选中未选择的软件包 llvm-3.8。
正准备解包 .../llvm-3.8_1%3a3.8-2ubuntu4_amd64.deb  ...
正在解包 llvm-3.8 (1:3.8-2ubuntu4) ...
正在选中未选择的软件包 llvm。
正准备解包 .../llvm_1%3a3.8-33ubuntu3.1_amd64.deb  ...
正在解包 llvm (1:3.8-33ubuntu3.1) ...
正在选中未选择的软件包 libjsoncpp1:amd64。
正准备解包 .../libjsoncpp1_1.7.2-1_amd64.deb  ...
正在解包 libjsoncpp1:amd64 (1.7.2-1) ...
正在选中未选择的软件包 libffi-dev:amd64。
正准备解包 .../libffi-dev_3.2.1-4_amd64.deb  ...
正在解包 libffi-dev:amd64 (3.2.1-4) ...
正在选中未选择的软件包 llvm-3.8-dev。
正准备解包 .../llvm-3.8-dev_1%3a3.8-2ubuntu4_amd64.deb  ...
正在解包 llvm-3.8-dev (1:3.8-2ubuntu4) ...
正在处理用于 systemd (229-4ubuntu21.4) 的触发器 ...
正在处理用于 ureadahead (0.100.0-19) 的触发器 ...
正在处理用于 man-db (2.7.5-1) 的触发器 ...
正在处理用于 install-info (6.1.0.dfsg.1-5) 的触发器 ...
正在处理用于 doc-base (0.10.7) 的触发器 ...
Processing 33 changed doc-base files, 2 added doc-base files...
正在处理用于 libc-bin (2.23-0ubuntu10) 的触发器 ...
正在设置 binfmt-support (2.1.6-1) ...
正在设置 bzip2-doc (1.0.6-8) ...
正在设置 libbz2-dev:amd64 (1.0.6-8) ...
正在设置 libtinfo-dev:amd64 (6.0+20160213-1ubuntu1) ...
正在设置 libreadline6-dev:amd64 (6.3-8ubuntu2) ...
正在设置 libreadline-dev:amd64 (6.3-8ubuntu2) ...
正在设置 libsqlite3-dev:amd64 (3.11.0-1ubuntu1) ...
正在设置 zlib1g-dev:amd64 (1:1.2.8.dfsg-2ubuntu4.1) ...
正在设置 libssl-dev:amd64 (1.0.2g-1ubuntu4.13) ...
正在设置 libssl-doc (1.0.2g-1ubuntu4.13) ...
正在设置 llvm-3.8-runtime (1:3.8-2ubuntu4) ...
正在设置 llvm-runtime (1:3.8-33ubuntu3.1) ...
正在设置 llvm-3.8 (1:3.8-2ubuntu4) ...
正在设置 llvm (1:3.8-33ubuntu3.1) ...
正在设置 libjsoncpp1:amd64 (1.7.2-1) ...
正在设置 libffi-dev:amd64 (3.2.1-4) ...
正在设置 llvm-3.8-dev (1:3.8-2ubuntu4) ...
正在处理用于 systemd (229-4ubuntu21.4) 的触发器 ...
正在处理用于 ureadahead (0.100.0-19) 的触发器 ...
正在处理用于 libc-bin (2.23-0ubuntu10) 的触发器 ...

  

第二步:下载python Python-2.7.9.tar.xz和Python-3.6.4.tar.xz的软件包

python Python-2.7.9.tar.xz 和 python Python-3.6.4.tar.xz

第三步:把下载的软件包放到指定目录(需要创建目录)

[email protected]:/$ cd ~/.pyenv
[email protected]:~/.pyenv$ mkdir cache
[email protected]:~/.pyenv$ mv /home/hgy/桌面/Python-2.7.9.tar.xz cache/
[email protected]:~/.pyenv$ mv /home/hgy/桌面/Python-3.6.4.tar.xz cache/
[email protected]:~/.pyenv$ cd cache/
[email protected]:~/.pyenv/cache$ ls
Python-2.7.9.tar.xz  Python-3.6.4.tar.xz

第四步:安装python2.7.9和3.6.4版本

-v 显示安装过程

[email protected]:~/.pyenv/cache$ pyenv install 2.7.9 -v
Installing Python-2.7.9...
patching file ./Lib/site.py
patching file ./Lib/ssl.py
...
?
[email protected]:~/.pyenv/cache$ pyenv install 3.6.4 -v
Installing Python-3.6.4...
patching file ./Lib/site.py
patching file ./Lib/ssl.py
...
:设置默认版本并测试默认版本
[email protected]:~/.pyenv/cache$ pyenv global 3.6.4
[email protected]:~/.pyenv/cache$ python
Python 3.6.4 (default, Sep  1 2018, 21:12:53) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

第六步:pyenv versions

[email protected]:~/.pyenv/cache$ pyenv versions
  system
  2.7.9
* 3.6.4 (set by /home/hgy/.pyenv/version)

第七步:更新pyenv的数据库

[email protected]:~/.pyenv/cache$ pyenv rehash

以上是关于Linux下python开发环境配置的主要内容,如果未能解决你的问题,请参考以下文章

python开发之virtualenv与virtualenvwrapper(linux下安装与配置)

十二ubuntu20.10(Linux)下Pycharm配置pyqt5开发环境

Python在Windows下开发环境配置汇总

linux下配置python环境

window / Linux 下 Golang 开发环境的配置

从零学习PythonUbuntu14.10下Python开发环境配置