python和java包管理的不同
java
java需要安装jdk,我们通常使用maven进行包管理,有中央仓库,有本地仓库,项目优先从本地仓库拉取,拉不到会从远程仓库拉取,所有项目用到的包都会放在本地仓库,需要使用的时候在本地拉取即可,高版本的jdk向前兼容,jdk8的编译器可以编译成1.7的版本
python
python与java有很大的不同,由于python为解释执行,没有了编译的过程,所以在执行的过程中,只能由对应的解释器对代码进行解释和执行,这样就造成了,python需要有多个解释器对于代码进行解释执行
接下来就主要介绍下python环境安装过程中遇到的问题,和我自己的理解:
如何安装python开发环境?
- 通过官网下载直接下载python安装包安装 https://www.python.org/
- 使用pyenv https://github.com/pyenv/pyenv
- 使用anaconda https://www.anaconda.com/
先说结论
推荐使用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环境中自由切换,我的电脑中安装了这两种工具,经过一段时间的采坑已经能够比较方便的使用了