“test-jb-setup”
缘起
很久以前知道有这个语言,一直没有仔细研究涉及,只知道是一个脚本语言,想着和Javascript差不多的语言。第一次有些触动是因为据说OpenStack是用Python语言写的。后来零零星星据说是一种胶水语言,可以黏合很多系统,另外说是擅长做爬虫。对于爬虫的理解,我一直是用Delphi的IdHttp来请求抓数据,并不认为有所谓擅长不擅长之说,这个问题现在还没有特别想的清楚,以后慢慢体会吧。再后来据说Python是Google的4大语言之一。然后有一个爬虫的需求,所以就用Python尝试。下面是一些学习的点滴,希望这个系列可以成为Python的一条入门之路。
对于一个语言而言,生态是很重要的,语法本身而言的影响,和整个生态而言,是微不足道的。想起以前VCL和MFC的争论,VCL的崛起和衰落,这也许也是原因吧。
1、基本操作
Python在Linux和Mac上是内置的,通常都是2.x版本。也就是说在终端之间输入 python就可以执行了。如果只用这个版本,也就不用安装了。使用也很简单。
- 简单处理
在终端输入 python 可以直接进入python环境,可以看到python版本号和一个输入符号«<。
python
Python 3.5.0 (v3.5.0:374f501f4567, Sep 12 2015, 11:00:19)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 1+2
3
>>> print("hello")
hello
从上面我们可以看到,要简单执行一个操作是很容易的,python本身也提供了很多方法,比如数学方法等等
- 运行脚本 实际项目中,我们一般的理念,总得有个什么形式来做发布什么的,windows的exe,java的war等等,总不能在脚本里面这么跑吧。目前的做法是通过python命令来做。比如: python xxxx.py
这样就可以了。但是这样做会依赖当前会话。如果是ssh,关闭窗口的时候,python也终止了。 所以可以通过其他的工具协助来做。比如:
nohup python xxx.py &
#2、 python版本升级
上面提到的都是基于现有python版本的。如果需要替换,特别是这个时间点上,2.x和3.x版本并存,而且相互并不兼容,从长远看,一定是往前发展的。所以就存在替换版本的问题。下面以centos 7为例,介绍如何升级。
2.1、前置安装
安装方式是源码安装,版本为3.4.3。需要前置很多包,否则在编译阶段会出错
yum install readline-devel sqlite-devel
yum install openssl openssl-devel
yum install zlib zlib-devel
yum install gdbm-devel
yum install xz-devel bzip2-devel
yum install tk-devel
2.2、介质下载
wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tgz
2.3、开始安装
这里建议把make和 make install 分开来执行,可以看下过程有什么问题,缺什么强制安装的东西
mkdir /usr/local/python3.4.3
tar -vxf Python-3.4.3.tgz
./configure --prefix=/usr/local/python3.4.3
make
make install
#2.3、 配置修改
因为要保证2个环境并存,所以把原来/usr/bin/python 替换掉,并把pip也替换掉
mv /usr/bin/python /usr/bin/python_old
ln -s /usr/local/python3.4.3/bin/python3 /usr/bin/python
ln -s /usr/local/python3.4.3/bin/pip3 /usr/bin/pip
2.4、检查版本
python --version
2.5、yum修改
centos的yum是基于系统的python做的,是基于python 2.x,所以升级以后会无法使用 python 因为python版本调整过了,所以需要修改yum配置
vim /usr/bin/yum
vim /usr/libexec/urlgrabber-ext-down
第一行修改成
#!/usr/bin/python2
否则会有报错
except KeyboardInterrupt, e:
2.6 卸载python 3.4
有安装也对应有卸载。下面是Mac的脚本,供参考。
sudo rm -r /Library/Frameworks/Python.framework /Applications/Python\ 3.* /Library/Receipts/Python*-3.*.pkg
sudo rm -Rfv /Library/Frameworks/Python.framework/ /Applications/Python\ 3.*/
cd /usr/local/bin/
sudo rm -fv 2to3 2to3-3.* idle3 idle3.* pydoc3 pydoc3.* python3 python3-32 python3-config python3.* python3.*-32 python3.*-config python3.*m python3.*m-config pythonw3 pythonw3-32 pythonw3.* pythonw3.*-32 /Developer/Documentation/Python/Reference\ Documentation\ 3.*
因为自己现在用的是 zsh,如果有调整,原来放在 .bash_profile里面的,需要改成放到.zshrc。
3、安装python包
目的是为了安装别人做好的库,Package。安装通常是通过pip命令来做。pip会随着python的安装一起安装。
#3.1、 通过pipy
这个可以理解为yum, apt-get 类似的命令,它会去pypi找一个中央库,然后从那里下载。简单方便
pip install flash-restful
#3.2、 依赖安装
对于已经做好的一个项目,里面会用到很多依赖的外部python包,这个时候可以通过一个文本文件列出所有依赖的文件。通过-r参数来安装,如
pip install -r requirements.txt
这个文件可以自己写,也可以通过工具生成。
redis == 2.10.5
requests == 2.8.1
$ pip install pipreqs
$ pipreqs 项目路径
#3.3、本地源码安装
没装过
#3.4、允许外部
pip install --allow-external mysql-connector-python mysql-connector-python
不加 –allow-external 会提示,照着提示也能搞定
#3.4、在线安装
pip install -e "git://github.com/FelixLoether/flask-uploads#egg=Flask-Uploads
通过这样的方式,就可以安装最新的版本,应该也算是源码安装吧
#3.5、 升级pip
pip install --upgrade pip
3.6、 其他pip参数
可以通过帮助看到,一般是 list看安装过的程序,通过upgrade升级
#4、 开发工具选择
工具很多,基于上面的描述,我们用普通的文本编辑器就够了,对于生产力工具来说。当然还是推荐使用成熟的IDE工具,推荐使用PyCharm