首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python开发必会:Python虚拟环境

1. 为什么用Python虚拟环境

实际工作中,我们接触的 Python 版本和相关的 web 框架版本往往是不一样的,比如有的组合可能是 python2 + Django1.8,有的可能是 python3.6 + Django1.12,两个还好办,我在电脑上安装两个版本的 python 不就好了?

但是,如果有五六七八个项目,需要五六七八套 python 环境呢?这就轮到虚拟环境登场了。

2. 下载安装

清华的镜像 https://mirror.tuna.tsinghua.edu.cn/help/anaconda/

官方说明 http://conda.pydata.org/docs/using/envs.html

2.1 Windows

直接下载安装包,下载完,直接下一步默认安装就好。

2.2 Linux or Mac

直接下载脚本 xxxx.sh ,xxxx 指代版本号,打开控制台终端,cd 到那个下载目录,然后直接 sh xxxx.sh 安装就ok了

3 怎么玩-基本命令

3.1 基本命令说明

Windows最好配合ConEmu使用

#查看版本conda info —envs或conda env list# **注意,为了避免你的网络太慢,请先运行下面命令加速一些**conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --set show_channel_urls yes# 安装完整版python2版本的condaconda create -n py2 python=2 anaconda# 移除虚拟环境conda remove --all -n 3todo# 创建只有django的python2环境,名字py2-dj,注意,python=2 django是连续参数conda create python=2 django -n py2-dj# 如果不指定python版本,那是不能够滴,会报错conda create -n env-testError: too few arguments, must supply command line package specs or --file# 所以要至少指定个python版本,可以不带任何库conda create -n env-test python=3Fetching package metadata .......# clone环境的2种办法1. pip(只是复制安装包)(pytest) C:\ProgramData\Anaconda3>cd D:\pyTools(pytest) C:\ProgramData\Anaconda3>d:(pytest) D:\pyTools>pip freeze > env.txtenv.txt里内容如下:Django==1.10.5新建环境pytest2,并进入,加入这里只有个requests(pytest2) D:\pyTools>pip freezerequests==2.14.2下面把pytest的包安装过来(pytest2) D:\pyTools>pip freezerequests==2.14.2(pytest2) D:\pyTools>pip install -r env.txtCollecting Django==1.10.5 (from -r env.txt (line 1)) Downloading Django-1.10.5-py2.py3-none-any.whl (6.8MB) 100% |████████████████████████████████| 6.8MB 144kB/sInstalling collected packages: DjangoSuccessfully installed Django-1.10.5(pytest2) D:\pyTools>pip freezeDjango==1.10.5requests==2.14.22. 使用clone命令(复制整套环境)D:\pyTools>conda create --clone pytest2 -n py3Source: C:\Anaconda3\envs\pytest2Destination: C:\Anaconda3\envs\py3(py3) D:\pyTools>pip freezeDjango==1.10.5requests==2.14.2

新建虚拟环境示意图:

3.2 写个Django环境测试一下:

D:\pyTools>cc py2dj18 python=2 django=1.8Fetching package metadata .......Solving package specifications: ..........coa py2dj18 # 激活环境1. 新建 projectdjango-admin.py startproject pxjgz2. 新建 appcd pxjgz 进入目录python manage.py startapp app01或 django-admin.py startapp app013. python manage.py runserver

打开浏览器,在 127.0.0.1:8000 就能看见可以工作的界面了。

4 自定义命令别名[这是关键]

是不是上面有些命令运行不了?别着急,因为我自定义了一些。

下面是我自己编的,你可以自定义。然后放到.bashrc,或.bash_profile就可以了!

4.1 linux或mac

# alias for conda alias cl="conda env list" alias cc="conda create -n" alias coa="source activate" alias cod="source deactivate" alias cr="conda remove --all -n"

注意:对于Linux,最好自己添加一下环境变量,conda的脚本执行完,也会提醒你的。

添加下面这行到.bashrc,

export PATH=/root/anaconda3/bin:$PATH

最后别忘了重新加载一下。

source ~/.bashrc

4.2 Windows最好配合ConEmu使用

在settings->Startup>Environment

alias cl=conda env listalias cc=conda create -n $*alias coa=activate $*alias cod=deactivatealias cr=conda remove --all -n $*

『补充』在mac中的使用示例

建立py3-dj,使用和删除的整个过程

-------~ cc py3-dj python=3 djangoFetching package metadata .......Solving package specifications: ..........Package plan for installation in environment /Users/howie/anaconda3/envs/py3-dj:The following packages will be downloaded: package | build ---------------------------|----------------- django-1.9.5 | py35_0 3.6 MB setuptools-26.1.1 | py35_0 524 KB ------------------------------------------------------------ Total: 4.1 MBThe following NEW packages will be INSTALLED: django: 1.9.5-py35_0 openssl: 1.0.2h-2 pip: 8.1.2-py35_0 python: 3.5.2-0 readline: 6.2-2 setuptools: 26.1.1-py35_0 sqlite: 3.13.0-0 tk: 8.5.18-0 wheel: 0.29.0-py35_0 xz: 5.2.2-0 zlib: 1.2.8-3Proceed ([y]/n)? yFetching packages ...django-1.9.5-p 100% |################################| Time: 0:00:08 437.51 kB/ssetuptools-26. 100% |################################| Time: 0:00:03 154.73 kB/sExtracting packages ...[ COMPLETE ]|###################################################| 100%Linking packages ...[ COMPLETE ]|###################################################| 100%## To activate this environment, use:# $ source activate py3-dj## To deactivate this environment, use:# $ source deactivate#➜ ~ cl# conda environments:#py2 /Users/howie/anaconda3/envs/py2py2-dj /Users/howie/anaconda3/envs/py2-djpy3-dj /Users/howie/anaconda3/envs/py3-djroot * /Users/howie/anaconda3➜ ~ coa py3-dj(py3-dj) ➜ ~ pythonPython 3.5.2 |Continuum Analytics, Inc.| (default, Jul 2 2016, 17:52:12)[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwinType "help", "copyright", "credits" or "license" for more information.>>> import django>>> django.__version__'1.9.5'>>>(py3-dj) ➜ ~ cod➜ ~ cl# conda environments:#py2 /Users/howie/anaconda3/envs/py2py2-dj /Users/howie/anaconda3/envs/py2-djpy3-dj /Users/howie/anaconda3/envs/py3-djroot * /Users/howie/anaconda3➜ ~ cr py3-djPackage plan for package removal in environment /Users/howie/anaconda3/envs/py3-dj:The following packages will be REMOVED: django: 1.9.5-py35_0 openssl: 1.0.2h-2 pip: 8.1.2-py35_0 python: 3.5.2-0 readline: 6.2-2 setuptools: 26.1.1-py35_0 sqlite: 3.13.0-0 tk: 8.5.18-0 wheel: 0.29.0-py35_0 xz: 5.2.2-0 zlib: 1.2.8-3Proceed ([y]/n)? yUnlinking packages ...[ COMPLETE ]|###################################################| 100%

作者:第8哥

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180317B1F8NP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券