1,Python语言
1.1 Python发展
1989年圣诞节期间,为了打发无聊的时间,荷兰人Guido van Rossum(数学、计算机双硕士,2005年 加入Google,2013年加入DropBox),决心开发一种新的解释性脚本语言。
1991年初发布了第一个公开发行版。由于他是英国BBC喜剧《Monty Python's Flying Circus》的忠实 粉丝,因此为这门语言取名Python。
Python目前已经成为很多大学的编程课语言。甚至在国内一些考试已经引入了Python。科学计算方 面、运维领域Python几乎已经成为最主要的编程语言,拥有非常方便快捷开发的库。
Python的哲学,可以使用import this 查看Python之禅。
1.2 Python的版本
目前企业中使用的主要版本还是2.x和3.x。
2.x最后一个版本是2.7,很多企业为了兼容老项目依然在维护。Python2将在2019年底不在支持,官方 还提供了一个倒计时网站https://pythonclock.org/。
3.x还在不断的扩充发展,当前主流版本是3.6。
2015年9月发布3.5,2016年12月发布3.6,2018年6月发布3.7,2019年10月发布3.8.0。
1.2.1 Python2和Python3的区别
语句函数化,例如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的取整变为距离最近的偶数
3.x字符串统一使用Unicode
异常的捕获、抛出的语法改变
早几年,各主要国内外大公司都已经迁移到了Python3。很多重要的Python第三方库也陆续停止了对 Python2的支持,所以,Python3已经是必须学习的版本。2018年Python3的使用比例已经超过了 85%。
在公司内,往往老项目维护维持2.x版本暂不升级,新项目使用3.x开发。
开发时,假如使用3.5.8,部署时应尽量保持一致,不要随意升级版本,更不要降低版本。
不要迷信版本,学会一个版本,好好学会一门语言,其他都不是问题。当然,也不要迷信语言。在最合适的领域使用最合适的语言。
2,环境安装
官方网站下载不同平台。https://www.python.org/downloads/
2.1 Linux环境安装
如果是Ubuntu等桌面系统,都已经更新到了Python较新的版本。但多数生产环境使用的还是红帽系 统。
CentOS7默认还是Python2.7,而开发环境如果是高版本Python就带来了问题。为了不破坏当前系统使 用,甚至以后为了多个Python项目部署(这些项目使用不同Python解释器版本),建议使用多版本工 具。
也可以考虑容器部署Python应用程序。
2.1.1 pyenv多版本
# yum install git curl
python编译依赖如下
# yum install gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel
创建普通用户
# useradd python # su - python
在python用户下安装
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
由于某些原因,浏览器可以访问,大家自行下载保存为shell脚本执行
https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer
或者使用项目源码文件:
https://github.com/pyenv/pyenv-installer/blob/master/bin/pyenv-installer
以后更新pyenv使用
$ pyenv update
安装完,按照提示处理,把下面的脚本放到当前用户的.bashrc文件末尾:
export PATH="/home/python/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
2.1.2 缓存文件
由于连接国外网站速度太慢,可以先下载好将要安装的Python版本的安装包,直接放置在 ~/.pyenv/cache目录下,再进行安装。此cache目录不存在,请自行创建。
cd /home/python/.pyenv
mkdir cache
2.1.3 安装Python多版本
$ pyenv install -l
$ pyenv install 3.6.11 -vvv
$ pyenv install 3.7.7 -vvv
$ pyenv version 当前python版本,system表示当前操作系统使用的版本
$ pyenv versions 查看所有已经安装版本,*星号表示当前版本
pyenv是源代码编译安装Python解释器,所以一定要安装gcc等依赖.
2.1.4 创建虚拟环境
由于不同项目,或使用不同Python版本,或使用同版本Python但使用不同版本库,很难将它们部署在 一起,所以,应该使用不同的虚拟环境隔离部署。
使用pyenv local命令建立一个目录和一个Python版本或虚拟版本之间的关系,该目录的子孙目录默认 也继承这个版本。
$ mkdir -p projects/test3611
$ cd projects/test3611/
[python@nodex test369]$ pyenv virtualenv 3.6.9 py3611
[python@nodex test369]$ pyenv local py3611
(py3611) [python@nodex test369]$ python -V
Python 3.6.11
(py3611) [python@nodex test369]$ pyenv version
py3611 (set by /home/python/projects/test369/.python-version)
2.2 windows环境安装
下载Windows x86-64 executable installer ,按照提示安装即可。 勾选增加PATH路径,简单安装直接点击"Install Now"。
打开Windows命令行
$ python -V
Python 3.7.4
$ pip -V
pip 19.0.3 (python 3.7)
pip是Python包管理器,以后安装Python第三方包都需要它,它从3.x开始就集成在Python安装包里面 了。
setuptools是 Python Enterprise Application Kit(PEAK)的一个副项目,它 是一组Python的 distutilsde工具的增强工具(适用于 Python 2.3.5 以上的版本,64 位平台则适用于 Python 2.4 以上的版本),可以让程序员更方便的创建和发布 Python 包,特别是那些对其它包具有依赖性的状况
3 pip通用配置
windows配置文件:~/pip/pip.ini 。windows家目录,在“运行”中键入.
Linux配置文件:~/.pip/pip.conf内容,可参照 http://mirrors.aliyun.com的pypi帮助
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
pip install pkgname 命令,是安装python包的命令
3.1 按装ipython
ipython:是增强的交互式Python命令行工具
$ pip list
$ pip install ipython
$ ipython
3.2 Jupyter
是基于WEB的交互式笔记本,其中可以非常方便的使用Python。
安装Jupyter,也会依赖安装ipython的
$ pip install jupyter
$ jupyter notebook help
$ jupyter notebook --ip=0.0.0.0 --no-browser
$ ss -tanl
(py3611) [python@centos-python test3611]$ jupyter notebook --ip=0.0.0.0 --port=8888
# 设置jupyter登陆密码:
(py3611) [python@centos-python test3611]$ jupyter notebook password
[I 09:59:24.994 NotebookApp] 启动notebooks 在本地路径: /home/python/project/test3611
[I 09:59:24.994 NotebookApp] Jupyter Notebook 6.1.4 is running at:
[I 09:59:24.994 NotebookApp] http://centos-python:8888/
[I 09:59:24.994 NotebookApp] 使用control-c停止此服务器并关闭所有内核(两次跳过确认).
[W 09:59:25.008 NotebookApp] 没有找到web浏览器: could not locate runnable browser.
使用外部浏览器登陆
常用快捷键:
- a之前插入代码块、b之后插入代码块
- L 增加行号
- 运行代码块 shift + enter,选择下面的代码块
- 运行当前代码块 ctrl + enter
4, 导出包
项目中开发完毕,要部署前,可以先导出当前使用的各种包的版本。在目标机器上安装这些包。
(py369) [python@node web]$ pip freeze > requirement
(py369) [python@node web]$ mkdir -p ~/magedu/projects/pro1 (py369) [python@node web]$ cd ~/magedu/projects/pro1 [python@node pro1]$ pyenv install --list
[python@node pro1]$ pyenv virtualenv 3.6.9 m369 [python@node pro1]$ pyenv local m369
(m369) [python@node pro1]$ mv ../web/requirement ./
(m369) [python@node pro1]$ pip install -r requirement
5,Pycharm安装
官网下载Pycharm社区版,足够开发项目使用了。 按照软件安装向导提示安装即可。
6,查阅帮助
- 在线帮助,html
- 下载并打开官方文档,chm
- 第一手好的资料应该是帮助文档
IPython中:
- 使用help(keyword),keyword可以是变量、对象、类、函数等
- keyword?
- keyword??