python
荷兰人Guido van Rossum,2005年加入Google,2013年加入Dropbox.
1989年,创立了Python语言,1991年初发布第一个公开发行版.
他是英国BBC喜剧《Monty Python's Flying Circus》的忠实粉丝
Python哲学
>>> import this
>>>Python之禅
版本
2.x:发展到了2.7。
3.x:发展到了3.7,3.x始自2008年,3.5版本发布于2015年。
https://pythonclock.org 2.x的倒计时。
2.x和3.x大概区别:
语句函数化,例如print(1,2)打印出1 2,但是2.x中意思是print语句打印元组,3.x中意思是函数的2个参数。
整除,例如1/2和1//2,3.x版本中/为自然除。
3.x中raw_input重命名为input,不再使用raw_input。
round函数,在3.x中i.5的取整变为距离最近的偶数。
字符串统一使用Unicode。
异常的捕获、抛出的语法改变。
开发环境-pyenv
Python多版本管理工具作用:
管理Python解释器
管理Python版本
管理Python的虚拟环境
pyenv官网 https://github.com/pyenv/pyenv
pyenv安装
参照安装文档
pyenv的安装
python多版本安装
pyenv之global、shell、local的设置
pyenv的虚拟环境
更新:$ pyenv update
1. git安装
# yum install git -y
2. 安装python编译依赖环境
# yum -y install gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel
3. 创建用户python
# useradd python
4. 使用python用户登录后安装pyenv
# su - python
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
注意:
- 在 https://github.com/pyenv/pyenv-installer 有安装文档.
- centos6版本:如果curl出现 curl: (35) SSL connect error ,是nss版本低的问题,更新它。 可能需要
配置一个有较新包的yum源
# echo '[updates]
name=CentOS-Updates
baseurl=https://mirrors.aliyun.com/centos/6.9/os/x86_64
gpgcheck=0' > /etc/yum.repo.d/Centos-Updates.repo
然后更新nss
# yum update nss
5. 加载pyenv
$ echo 'export PATH="/home/python/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"' > ~/.bashrc
$ source ~/.bashrc
这样当用户启动的时候,会执行用户的.bashrc中的脚本,就会启动pyenv。 安装好的pyenv
就在~/.pyenv中.
pyenv离线安装
首先从github上克隆项目
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenvvirtualenv
$ git clone https://github.com/pyenv/pyenv-update.git ~/.pyenv/plugins/pyenvupdate
$ git clone https://github.com/pyenv/pyenv-which-ext.git ~/.pyenv/plugins/pyenv-which-ext
可以把克隆的目录打包,方便以后离线使用。
$ vim ~/.bashrc
export PATH="/home/python/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pyenv常用命令
version
显示当前的python版本 versions 显示所有可用的python版本,和当前版本。
install
$ pyenv install 3.5.6
安装python发行版本。
virtualenv
$ pyenv virtualenv 3.5.6 common_env
创建虚拟环境.
local 本地设置
使用pyenv local设置从当前工作目录开始向下递归都继承这个设置。 $ pyenv local 3.5.3
update
更新pyenv版本与github同步。
shell 会话设置
影响只作用于当前会话 $ pyenv shell 3.5.3
global 全局设置
$ pyenv global 3.5.3
可以看到所有受pyenv控制的窗口中都是3.5.3的python版本了。
这里用global是作用于非root用户python用户上,如果是root用户安装,请不要使
用global,否则影响太大。
比如,这里使用的CentOS7就是Python2.7,使用了global就成了3.x,
会带来很不好的影响。 $ pyenv global system
pip包管理
pip install xxx yyy
pip list
pip search keyword 或者 pypi
pip help install
pip 配置
$ vim ~/.pip/pip.conf
[global]
index-url=http://mirrors.aliyun.com/pypi/simple
trusted-host=mirrors.aliyun.com
#阿里云、清华、豆瓣的国内源
pip导出/安装依赖包
pip freeze > requirement #导出依赖包
pip install -r requirement #安装依赖包