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

[经验分享] 002-Python编程环境的各种姿势

[复制链接]

尚未签到

发表于 2018-8-6 12:37:45 | 显示全部楼层 |阅读模式
  本文档以Python3.5.2版本进行演示。

pip
  pip是Python的软件包管理工具,可以用来安装、升级与卸载Python的软件包。从Python3.4版本开始,系统已经自带pip工具了。
  

# python3的使用方法  
python -m pip install SomePackage
  

  
python -m pip install SomePackage==1.0.4    # specific version
  
python -m pip install "SomePackage>=1.0.4"  # minimum version
  

  
python -m pip install --upgrade SomePackage
  

  如果在Windows上使用pip,需要设置环境变量,把pip的路径加入到PATH环境变量中。

virtualenv
  使用虚拟环境的最大好处就是不会对系统中的Python造成影响。
  

# 安装virtualenv  
pip install virtualenv
  

  
# 创建一个名为py2_env的虚拟环境
  
virtualenv py2_env
  

  
# 指定Python版本创建一个名为py3_env的虚拟环境
  
virtualenv -p /usr/local/bin/python3 py3_env
  

  
# 激活虚拟环境
  
cd py3_env
  
source bin/active
  

  
# 禁用虚拟环境
  
deactivate
  

  在Windows上使用virtualenv有些不同,激活虚拟环境的方式与Linux不太一样:
  

md testops  
cd testops
  
virtualenv venv
  
.\venv\Scripts\activate.bat
  

  要使用virtualenv创建虚拟环境,需要额外安装virtualenv软件包。不过在Python3.3+版本之后,可以使用Python字典的venv模块进行创建虚拟环境。使用如下:
  

python3 -m venv <DIR>  
source <DIR>/bin/activate
  
# 如果是Windows机器,使用如下方式激活虚拟环境
  
<DIR>\Scripts\activate.bat
  

pyenv
  https://github.com/yyuu/pyenv-installer
  https://github.com/yyuu/pyenv
  首先,确保系统有git,
  

# yum install git  
$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
  

  设置环境变量,可以添加到个人家目录的.bashrc或.bash_profile及系统的全局的/etc/profile,
  

# Load pyenv automatically by adding  
# the following to ~/.bash_profile:
  

  
export PATH="/home/lavenliu/.pyenv/bin:$PATH"
  
eval "$(pyenv init -)"
  
eval "$(pyenv virtualenv-init -)"
  

  安装一个3.5.2的版本,
  

pyenv install 3.5.2  
# 如果下载速度慢的话,
  
# 可以事先下载之,放到~/.pyenv/cache目录即可,
  
# 安装包应为.tar.gz格式的压缩包
  
# 需要修改~/.pyenv/plugins/python-build/share/python-build/3.5.2
  
##
  
# 查看可以安装的版本
  
pyenv install --list
  

  如果没有我们要安装的版本,可以更新pyenv,
  

pyenv update  

  如果使用pyenv手工安装Python,在使用pyenv安装Python时,需要安装Python
  的依赖包,不然在执行“pyenv install 3.5.2”时会报错,
  

yum install -y gcc make patch gdbm-devel openssl-devel \  
sqlite-devel zlib-devel bzip2-devel readline-devel
  

  生产环境不需要多版本,一般在开发环境下才需要多环境。
  切换到3.5.2版本,
  

pyenv local 3.5.2  
# 会在家目录生成一个.python-version的文件,其内容包括3.5.2
  
# 可以查看当前Python的版本
  
pyenv version
  
python -V
  
# 永远不要执行pyenv global
  
# local命令切换当前目录及其子目录的Python版本,可以通过删除
  
# .python-version恢复默认Python版本
  

  pyenv的强大之处是,针对目录可以设置版本。子目录会继承父目录的版本。pyenv是如何做到的呢?其实,它是依赖于一个隐藏文件.python-version,我们可以看一下它的内容:
  

[lavenliu@myhost ~]$ python -V  
Python 3.5.2
  
[lavenliu@myhost ~]$ cd /usr/local/src/
  
[lavenliu@myhost src]$ python -V
  
Python 2.6.6
  
[lavenliu@myhost ~]$ cat .python-version
  
3.5.2
  

  由于在lavenliu的家目录下有.python-version这个文件,而在/usr/local/src目录下面没有此文件。
  pyenv通过插件,可以很好的和virtualenv一起工作,通过整合virtualenv,pyenv实现了真正意义上的环境隔离,每个项目都相当于使用一个单独的解释器。
  通过pyenv-installer安装的pyenv,已经安装好virtualenv插件了,如果不是通过pyenv-installer安装的pyenv,我们需要自己安装virtualenv插件,安装方法很简单:
  

cd $PYENV_ROOT/plugins # 默认是在~/.pyenv/plugins  
git clone https://github.com/yyuu/pyenv-virtualenv.git
  

  直接把插件clone下来就完成了安装。
  安装完成之后,我们就可以通过virtualenv命令即可创建虚拟环境,virtualenv的一般用法如下:
  

pyenv virtualenv [-f|--force] [-u|--upgrade] [VIRTUALENV_OPTIONS] <version> <virtualenv-name>  

  选项-f表示强制的,也就是如果已经存在这个虚拟环境,那么将会覆盖这个虚拟环境 选项-u表示upgrade,用于修改已经存在的虚拟环境的Python版本VIRTUALENV_OPTIONS 是传递给virtualenv的选项,可以通过virtualenv的帮助获取选项的含义 version 表示Python版本 virtualenv-name 是我们给虚拟环境指定的名字,如:
  

pyenv virtualenv 2.7.5 my_project  

  以上命令就创建了一个基于Python-2.7.5,名为my_project的虚拟环境。创建好的虚拟环境犹如一个单独Python版本一样,我们可以通过local或者global命令切换过去。
  

[lavenliu@VM_113_230_centos ~]$ pyenv versions  system
  2.7.5
  2.7.5/envs/my_project
  * 3.5.2 (set by /home/lavenliu/.python-version)
  my_project
  

  
[lavenliu@VM_113_230_centos ~]$ pyenv local my_project
  
(my_project) [lavenliu@VM_113_230_centos ~]$
  
(my_project) [lavenliu@VM_113_230_centos ~]$ python -V
  
Python 2.7.5
  

  由于每个解释器间完全是隔离的,所以强烈建议我们的每个项目,都放置在单独的虚拟环境中。virtualenv插件还提供了virtualenvs命令,用于列出所有已创建的虚拟环境:
  

(my_project) [lavenliu@VM_113_230_centos ~]$ pyenv virtualenvs  2.7.5/envs/my_project (created from /home/lavenliu/.pyenv/versions/2.7.5)
  * my_project (created from /home/lavenliu/.pyenv/versions/2.7.5)
  

  当我们的一个项目生命周期结束的时候,我们或许会想要删除虚拟环境以释放我们的硬盘空间,删除虚拟环境非常简单,直接用uninstall命令像删除正常的Python版本一样就可以了。
  

[lavenliu@myhost ~]$ pyenv uninstall magedu  
pyenv-virtualenv: remove /home/lavenliu/.pyenv/versions/3.5.2/envs/magedu? y
  

  事实上,虚拟环境一旦创建,你就可以把他当成一个独立的版本来使用和维护了。

ipython
  

pip install ipython  

  ipython是非常好用的Python交互式控制台程序。比Python自带的要好用的多。

bpython
  看名字就可以知道这是“为装逼而生”、“为发烧而生”。因为够逼格,所以,前面冠以字母'b',不知道作者是不是这个意思。反正,我觉得有这么个意思。
  安装起来很简单:
  

pip install bpython  

  使用起来更是简单:

notebook
  

pip install jupyter  
jupyter notebook --help
  
jupyter notebook --ip=192.168.20.134
  
# 如果是root用户启动的,那么需加上--allow-root选项
  
# 需要记录一下token的值,登录的时候需要用到
  
jupyter notebook --allow-root --ip=192.168.20.134
  
# brower
  
192.168.20.134:8888/tree

  
# Press>  

  jupyter notebook的简单使用方法,
  

执行代码时,按组合键Alt+Enter  
执行MarkDown时,按组合键Shift+Enter
  

  在Windows上安装notebook,Linux是同样的步骤,
  

pip install ipython  
pip install notebook
  
cd /d f:\dev\python
  
jupyter -h
  
jupyter notebook
  
jupyter notebook --ip=0.0.0.0 --no-browser
  

  如果在非Windows机器上,注意iptables要关闭或要放行8888端口。
  jupyter的使用与vim类似,也有编辑模式与命令模式。使用ESC切换编辑模式与命令模式。

emacs
  在CentOS6.x或CentOS7.x上搭建Emacs编辑器,并使用elpy扩展。
  

yum install -y python-devel openssl-devel libffi-devel  
pip install rope==0.9.4
  
pip install jedi==0.9.0
  
pip install flake8
  
pip install importmagic==0.1.6
  
pip install autopep8==1.2.2
  
pip install yapf==0.6.3
  
pip install virtualenv==15.0.1
  

  elpy的配置:
  

M-x elpy-config RET  

IDE
  最常用的IDE就是Eclipse、PyCharm及IDEA。

国内pip源设置
  由于网络原因,导致国内用户从国外pip仓库下载软件包极其缓慢,不及龟速,甚至超时!真是令人发指,怒发冲冠,愤愤然却又无可奈何耶。不过我们可以使用国内pip源来解决这一问题:


  • 阿里云pip源  

    如果没有.pip目录就先创建  
    mkdir ~/.pip
      
    cat <<EOF >> ~/.pip/pip.conf
      
    [global]
      
    index-url = http://mirrors.aliyun.com/pypi/simple/
      
    trusted-host = mirrors.aliyun.com
      
    EOF

  • 豆瓣pip源  

    wget https://bootstrap.pypa.io/ez_setup.py -O - | python  
    vim ~/.pip/pip.conf
      
    [global]
      
    index-url=http://pypi.douban.com/simple/
      
    trusted-host = pypi.douban.com

  这样设置完毕之后,安装速度会有很大的提升,可以说是飞一般的感觉。

运维网声明 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.iyunv.com/thread-547636-1-1.html 上篇帖子: python re删除匹配行 下篇帖子: python快速生成验证码(密码)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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