设为首页 收藏本站
查看: 1077|回复: 0

[经验分享] [原]打造Python开发环境之Python环境

[复制链接]

尚未签到

发表于 2015-11-29 09:34:32 | 显示全部楼层 |阅读模式
  

  人生苦短,我用Python

  
  一、升级到python2.7
  开发环境的系统是centos 6.0, 默认的python版本是2.6.6, 由于线上环境是python2.7,为了防止版本差异产生的问题,所以要升级python,在centos下升级python有是那种方式


  • yum安装,最简单,但是官方下载源版本更新慢,所以需要自行更改开发机的下载源,如网易的
  • rpm安装
  • 源码安装
  这里只介绍源码更新的过程,因为源码安装,个性化定制的东西很多,比较可控吧
  安装python,需要先下载一会儿编译期间或者开发期间会用到的依赖组件



yum groupinstall "Development tools"
yum install MySQL-python zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel -y
yum install python-psycopg2 -y
yum install gcc python-devel -y
yum install python-memcached -y
  接下来就可以开发下载python了,由于某些原因,python官网会被q(大家都懂得),所以建议更换下载源,如:搜狐的http://mirrors.sohu.com/python



wget http://mirrors.sohu.com/python/2.7.7/Python-2.7.7.tgz
tar -xvf Python-2.7.7.tgz
cd Python-2.7.7
./configure --prefix=/usr/local/python2.7
make
sudo make install
  在我第一次编译过程中,遇到了很多奇葩的问题,如:



Python build finished, but the necessary bits to build these modules were not found:  _bsddb                           
  _curses                                _curses_panel   
_sqlite3                   _ssl                                  _tkinter                  
bsddb185                   bz2                                    dbm                             
dl                                         gdbm                                  imageop                 
readline                   sunaudiodev             zlib                          
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
  给的提示信息,很明显是编译期间对应的模块没找到,所以还需要提前安装依赖包,在网上找到一些依赖包对应关系,如下:

模块依赖说明
_bsddbbsddbInterface to Berkeley DB library。Berkeley数据库的接口
_cursesncursesTerminal handling for character-cell displays。
_curses_panelncursesA panel stack extension for curses。
_sqlite3sqliteDB-API 2.0 interface for SQLite databases。SqlLite,CentOS可以安装sqlite-devel
_sslopenssl-devel.i686TLS/SSL wrapper for socket objects。
_tkinterN/Aa thin object-oriented layer on top of Tcl/Tk。如果不使用桌面程序可以忽略TKinter
bsddb185old bsddb module老的bsddb模块,可忽略。
bz2bzip2-devel.i686Compression compatible with bzip2。bzip2-devel
dbmbsddbSimple “database” interface。
dlN/ACall C functions in shared objects.Python2.6开始,已经弃用。
gdbmgdbm-devel.i686GNU’s reinterpretation of dbm
imageopN/AManipulate raw image data。已经弃用。
readlinereadline-develGNU readline interface
sunaudiodevN/AAccess to Sun audio hardware。这个是针对Sun平台的,CentOS下可以忽略
zlibZlibCompression compatible with gzip
  我安装了readline-devel,sqlite-devel,bzip2-devel.i686,openssl-devel.i686,gdbm-devel.i686,libdbi-devel.i686,ncurses-libs,zlib-devel.i686,这些依赖包,重新编译,就一切OK。
  安装好之后,确认一下是否安装正确



/usr/local/python2.7/bin/python2.7 -V
  但是,执行python -v,仍然是python 2.6, 所以做一个软连接



ln -fs /usr/local/python2.7/bin/python2.7 /usr/bin/python
  现在执行python -v,显示的就是ptyhon2.7啦
  But,还有最后一个问题,更改后,yum会无法运行,所以修改/usr/bin/yum文件的第一行



#!/usr/bin/python
  改成



#!/usr/bin/python2.6
  再次运行yum,everthing is  ok!
  
  二、安装pip
  先安装setuptools,如果python3.0版本,要安装distutils依赖包



wget https://pypi.python.org/pypi/ez_setup
  解压,进入目录,执行:



ptyhon ez_setup.py
  easy_install 就安装好了,
  接下来,安装pip



wget https://pypi.python.org/pypi/pip
  解压,进入目录,执行:



python setup.py install
  安装成功后,执行 pip ,提示  command not found
  原来pip还没有放入到PATH路径中。



# echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/titan/bin
  所以 要将pip路径加入到系统环境变量中



# vim /etc/profile
  在文档最后加入



export PATH="/usr/local/python-2.7.7/bin:$PATH"
  保存退出。执行  # source /etc/profile

  不报错,则表示成功
  再次执行  # pip -v   ,显示命令提示。
  还是由于众所周知的原因,pypi官网的链接也很慢,所以建议使用国内的pypi源,如豆瓣: http://pypi.douban.com
  添加~/.pip/pip.conf,并写入如下内容:



[global]
index-url = http://pypi.douban.com/simple
[install]
trusted-host=pypi.douban.com
  
  everthing is ok!
  
  三、VirtualEnv
   一台机器上可能会有多个项目,为了保证每个项目的依赖环境都是纯净的,只提供给自己的,这时就需要VirtualEnv啦!
    virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响,它能够:


  • 在没有权限的情况下安装新套件
  • 不同应用可以使用不同的套件版本
  • 套件升级不影响其他应用
  1、安装VirtualEnv
  通过pip安装,也可以通过yum安装



# pip install virtualenv
  使用方法:



virtualenv [虚拟环境名称]
  如,创建tjf_env的虚拟环境



virtualenv tjf_env
  默认情况下,虚拟环境会依赖系统环境中的site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境中,如果不想依赖这些package,那么可以加上参数--no-site-packages建立虚拟环境



virtualenv --no-site-packages [虚拟环境名称]
  启动虚拟环境



cd ENV
source ./bin/activate
  注意此时命令行会多一个(ENV),ENV为虚拟环境名称,接下来所有模块都只会安装到该目录中去。
退出虚拟环境:



deactivate
  在虚拟环境安装Python套件Virtualenv 附带有pip安装工具,因此需要安装的套件可以直接运行:



pip install [套件名称]
  如果没有启动虚拟环境,系统也安装了pip工具,那么套件将被安装在系统环境中,为了避免发生此事,可以在~/.bashrc文件中加上:



export PIP_REQUIRE_VIRTUALENV=true
  或者让在执行pip的时候让系统自动开启虚拟环境:



export PIP_RESPECT_VIRTUALENV=true
  
  2、安装Virtualenvwrapper
  Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做:


  • 将所有虚拟环境整合在一个目录下
  • 管理(新增,删除,复制)虚拟环境
  • 切换虚拟环境
  • ...
  安装: sudo pip install virtualenvwrapper
  此时还不能使用virtualenvwrapper,默认virtualenvwrapper安装在/usr/local/bin下面,实际上你需要运行virtualenvwrapper.sh文件才行,先别急,打开这个文件看看,里面有安装步骤,我们照着操作把环境设置好。
  1. 创建目录用来存放虚拟环境



mkdir $HOME/.virtualenvs
  2. 在~/.bashrc中添加行:  export WORKON_HOME=$HOME/.virtualenvs
  3. 在~/.bashrc中添加行: source /usr/local/bin/virtualenvwrapper.sh
  4. 运行:  source ~/.bashrc
  此时virtualenvwrapper就可以使用了。
列出虚拟环境列表  workon
  新建虚拟环境  mkvirtualenv [虚拟环境名称]
  启动/切换虚拟环境  workon [虚拟环境名称]
  删除虚拟环境  rmvirtualenv [虚拟环境名称]
  离开虚拟环境  deactivate
  VirtualEnv完毕,everything is ok!
  
  四、web框架
  有了pip的基础,想安装什么,简直如探囊取去一般轻松自如:



pip install django
pip install tornado
pip install flask
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-144803-1-1.html 上篇帖子: python下的自动化测试--selenium 验证码输入问题 下篇帖子: python curses使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表