handson-ml2 00 python虚拟环境在Ubuntu/win(anaconda&virtualenv)系统下的配置

python 虚拟环境配置

虚拟环境的作用

基于项目的历史版本原因,python多个项目中常常用到同一模块的不同版本,因此也就需要一个隔离的环境来单独运行项目环境。最近比较火的docker虚拟技术则是项目部署阶段的典范–可惜国内的一些大厂被禁用了,近期k8s又表示放弃对docker的支持。有点扯远了,本文的虚拟环境仅仅适用于python开发。

关于本帖

  • 对于一开始就用anaconda来进行python包管理,但不知道anaconda具体好在哪里的用户来说,看完本帖应该大致了解了。
    同时也是为了以后电脑又崩了自己回来方便查阅,手动狗头。
  • 因为之前兴趣冲冲的在Ubuntu中升级python版本,结果搞崩了,于是一气之下(能力不足啊!!!)就格式化那部分硬盘了,之前的双系统只剩下ad-win系统了。后来又因为一时兴起升级win版本到1909,导致anaconda不能创建虚拟环境,于是卸载重装,也就有了此帖。
  • handson-ml2前菜,对于部分常规操作给出了帖子链接,如有失效请自行搜索,网上有大把相关帖子

都说anaconda是一款优秀的python环境(包)管理系统,就来对比体验一下儿有多香吧!

虚拟环境的配置

Ubuntu

不得不说,Linux系统以及小资系统macOS对于python开发者真的友好,鉴于穷,只以Ubuntu为例,介绍Linux下python虚拟环境的配置使用:

  • 所有的虚拟环境都位于/home/下的隐藏目录.virtualenvs

1 安装虚拟环境的命令

```
sudo pip install virtualenv
sudo pip install virtualenvwrapper
```

2 创建虚拟环境的命令

```
mkvirtualenv -p python3 虚拟环境名称
```
`tips1`:如果不指定python版本,默认安装的是python2的虚拟环境:`mkvirtualenv 虚拟环境(python2)名称`
`tips2`:安装完虚拟环境后,如果提示找不到`mkvirtualenv`命令,须配置环境变量:
```
	# 1、创建目录用来存放虚拟环境
	mkdir $HOME/.virtualenvs

	# 2、打开~/.bashrc文件,并添加如下:
	export WORKON_HOME=$HOME/.virtualenvs
	source /usr/local/bin/virtualenvwrapper.sh

	# 3、运行
	source ~/.bashrc
```

3 使用虚拟环境的命令

  • 查看
workon 双击tab
  • 使用
workon 虚拟环境名称
  • 退出
deactivate
  • 删除
rmvirtualenv 虚拟环境名称
  • 其他
    工具包安装的位置 :~/.virtualenvs/虚拟环境名称/lib/python3.5/site-packages
    安装jupyter-1.0.0的包: pip install jupyter==1.0.0
    查看虚拟环境中安装的包 :pip freeze or pip list
    • 后台运行jupyter:
      jupyter notebook &
      关闭:
      ps -aux | grep jupyter 查看运行的jupyter进程
      kill -9 pid方式关闭运行中的 jupyter notebook

4 后台使用jupyter notebook

在Ubuntu下后台运行jupyter是一个非常方便实用的方式,在此仅附上一个相关帖子借以说明(如失效可自行搜索,有大把教程):
Ubuntu下后台启动jupyter notebook

Windows cmd/anaconda

1 Win在cmd下使用 virtualenv

cmd与Ubuntu的终端操作类似,本着不重复造*的原则,直接贴上帖子以供参考:
win下直接安装虚拟环境
下面贴上我的部分test结果,均以python3环境下为例:

C:\Users\Administrator>python
Python 3.8.6 (tags/v3.8.6:db45529, Sep 23 2020, 15:52:53) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()

我的python3安装路径:

C:\Users\Administrator>whereis python
C:\Python38\python.exe

利用mkvirtualenv创建虚拟环境:

C:\Users\Administrator>mkvirtualenv test
created virtual environment CPython3.8.6.final.0-64 in 1233ms
  creator CPython3Windows(dest=C:\Users\Administrator\Envs\test, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\Administrator\AppData\Local\pypa\virtualenv)
    added seed packages: pip==20.3.1, setuptools==51.0.0, wheel==0.36.1
  activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

(test) C:\Users\Administrator>workon

Pass a name to activate one of the following virtualenvs:
==============================================================================
test

默认安装的虚拟环境路径在:C:\Users\Administrator\Envs目录下
tips:win下的powershell集成了部分的命令提示,比amd方便好用,但是进不去python虚拟环境,解决方法也给出一个帖子(如失效可自行搜索,有大把教程):
powershell进入虚拟环境

2 Win下使用anaconda

anaconda常规操作

终于到anaconda了,虽然这么优秀的包管理环境在linux下也有,不过没有用过,linux(macOS)终端已经很好用了。
照例给上一个anaconda的帖子(如失效请自行搜索):
anaconda的基本使用

anaconda方便之处

界面

不得不说,界面显示确实很直观,不过我也只在创建不同python(2or3)版本的环境时用过,比如本书建议python环境3.6or3.7。
先贴上一图表示友好:
handson-ml2 00 python虚拟环境在Ubuntu/win(anaconda&virtualenv)系统下的配置

直接图形化选择点点点就ok啦,比在win环境中先安装指定python版本,再在cmd中用mkvirtualenv命令指定python版本下安装虚拟环境方便多了(anaconda直接帮我们装好对应版本python然后创建虚拟环境)。
下面是不同环境下(自带的base和新创建的mlbook)的python版本检验:
handson-ml2 00 python虚拟环境在Ubuntu/win(anaconda&virtualenv)系统下的配置

还算好用的终端

在这里也推荐使用anaconda prompt终端工具,可以在anaconda创建的虚拟环境中使用前面mkvirtualenv的环境:
handson-ml2 00 python虚拟环境在Ubuntu/win(anaconda&virtualenv)系统下的配置

卸载bug

软件使用遇到bug怎么办,卸载重装能解决过半的问题,但卸载不干净就可能会带来新的问题:
anaconda默认在C:\Users\Administrator路径下生成一个.condarc文件,删除后才能进行重装虚拟环境等操作,别问我为什么知道!!!

后台执行jupyter

关于在win下的后台执行jupyter notebook,我仅仅试用jupyter notebook &命令没有成功,给出一帖子吧(没有尝试,对比看一下就知道linux/macOS对python是有多么的友好了):
win下后台启动jupyter
不过我找了一个偷懒的方法:
win+tab然后新建桌面,把运行jupyter的终端丢进去,眼不见为净,妈妈再也不用担心我不小心关掉终端啦!!!
tips:孩子不小心关了浏览器:
复制终端里的token到浏览器打开就ok了

总结

不得不说,anaconda是真的好用。虽然没用过miniconda,但我估计是没有base环境下安装的那么多的包,具体路径参见添加anaconda到系统环境变量的帖子:
包环境路径
附上刚刚创建好的mlbook虚拟环境中包文件查看,可以对比一下base环境里的一堆文件:
handson-ml2 00 python虚拟环境在Ubuntu/win(anaconda&virtualenv)系统下的配置
感谢您能读到这里,希望此文对您有所帮助!!!

上一篇:[Python]安装虚拟环境{很有用}


下一篇:AttributeError: module 'virtualenv' has no attribute 'create_environment'