python和java包管理的不同

java

java需要安装jdk,我们通常使用maven进行包管理,有中央仓库,有本地仓库,项目优先从本地仓库拉取,拉不到会从远程仓库拉取,所有项目用到的包都会放在本地仓库,需要使用的时候在本地拉取即可,高版本的jdk向前兼容,jdk8的编译器可以编译成1.7的版本

python

python与java有很大的不同,由于python为解释执行,没有了编译的过程,所以在执行的过程中,只能由对应的解释器对代码进行解释和执行,这样就造成了,python需要有多个解释器对于代码进行解释执行

接下来就主要介绍下python环境安装过程中遇到的问题,和我自己的理解:

 如何安装python开发环境?

先说结论

推荐使用pyenv和anaconda的方式搭建python环境

对于一个长期使用python的开发者,怎么用都能玩的通,但是,对于python新手来说,使用python,习惯性的想到的肯定是去python官网上下载python,但是这样会出现我们下文中所提到的问题

提出问题

 1.同一台电脑上使用python2.7,有的使用了python3.6,如何进行多个版本的开发呢?  

   pyenv给我们提供了这个功能,我们可以通过pyenv切换当前使用的python版本

按照官网的教程完成安装后,通常使用的方法是:

which python  能够查看当前使用的python解释器

python --version 能够查看当前使用的python的版本

pyenv 查看pyenv的帮助

pyenv version 当前pyenv的解释器的版本

pyenv versions 查看安装的所有python版本

pyenv global <version> 设置全局的python版本

  2.同一个python环境,如python3.7下,我有两个程序,分别使用了同一个包的不同版本,如程序1使用tensorflow1.x版本,程序2使用tensorflow2.x版本,如何进行管理呢?

   使用virtualenv,创建不同的虚拟环境,将几个程序隔离开

使用pip install virtualenv 在当前的python环境下安装virtualenv工具

命令行输入 virtualenv 查看命令帮助

virtualenv <env_name> 会在当前目录下生成python虚拟环境

因为生产虚拟环境的时候会生成对应的目录,所以,这里建议将目录放在磁盘的同一个目录下,便于以后管理

如果要删除虚拟环境的话,直接删除对应的目录即可

这里举个例子,需要生成tensorflow的虚拟环境

cd ~/venv/python

virtualenv tensorflow

source ~/venv/python/tensorflow/bin/activate

完成了以上操作,我们就已经进入到了虚拟环境里边

使用which python查看,已经切换到了虚拟环境中,这时候再安装任何包,与其他环境都是隔离了,不会造成影响

$ which python
/Users/wentao.jiang/venv/python/tensorflow/bin/python

如果要退出呢,直接使用deactivate即可,因为已经将deactivate的命令加载到了$PATH下,再使用which python

$ which python
/Users/wentao.jiang/opt/anaconda3/bin/python

已经发现切回了源环境

使用了上边的方法,我们已经能够在多个python版本中切换,并且能够在某个版本中创建python的虚拟环境进行隔离,那么,还有anaconda,我们怎么来用呢,换句话说,为什么要使用anaconda呢?

anaconda

  • 集成了很多科学运算相关的库,可以直接使用,避免手动安装库比较繁
  • 有图形化的界面
  • anaconda中有不少教程
  • 集成了jupyterlib工具
  • 使用命令行工具,能够覆盖上边所提到的pyenv和virtualenv的功能

所以anaconda用起来非常的方便

按照官网的教程安装好之后,使用命令,可以直接指定python版本号,指定虚拟环境名称进行创建

conda create -n tensorflow  python=3.7

这样一键式的操作非常方便

conda activate tensorflow   激活tensorflow虚拟环境

conda deactivate   取消当前虚拟环境的激活

 

可以根据需要,在pyenv和anaconda环境中自由切换,我的电脑中安装了这两种工具,经过一段时间的采坑已经能够比较方便的使用了