小灶时间-如果你还不会用Python虚拟环境
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小灶时间-如果你还不会用Python虚拟环境相关的知识,希望对你有一定的参考价值。
一个鼓捣电脑多年的程序猿,带给你的几点编程套路和几个灵巧工具,希望为你的编程之路添砖加瓦,加血回蓝,一起拼荆斩棘,共同成长。统称:小灶时间,作者:第8哥。
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使用)
相关文件在这里:
【8组程序员小灶时间】工具链接: https://pan.baidu.com/s/1i5HtBFn 密码: kw4f
#查看版本
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版本的conda
conda 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-test
Error: too few arguments, must supply command line package specs or --file
# 所以要至少指定个python版本,可以不带任何库
conda create -n env-test python=3
Fetching package metadata .......
# clone环境的2种办法
1. pip(只是复制安装包)
(pytest) C:\ProgramData\Anaconda3>cd D:\pyTools
(pytest) C:\ProgramData\Anaconda3>d:
(pytest) D:\pyTools>pip freeze > env.txt
env.txt里内容如下:
Django==1.10.5
新建环境pytest2,并进入,加入这里只有个requests
(pytest2) D:\pyTools>pip freeze
requests==2.14.2
下面把pytest的包安装过来
(pytest2) D:\pyTools>pip freeze
requests==2.14.2
(pytest2) D:\pyTools>pip install -r env.txt
Collecting 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/s
Installing collected packages: Django
Successfully installed Django-1.10.5
(pytest2) D:\pyTools>pip freeze
Django==1.10.5
requests==2.14.2
2. 使用clone命令(复制整套环境)
D:\pyTools>conda create --clone pytest2 -n py3
Source: C:\Anaconda3\envs\pytest2
Destination: C:\Anaconda3\envs\py3
(py3) D:\pyTools>pip freeze
Django==1.10.5
requests==2.14.2
新建虚拟环境示意图:
3.2 写个Django环境测试一下:
D:\pyTools>cc py2dj18 python=2 django=1.8
Fetching package metadata .......
Solving package specifications: ..........
coa py2dj18 # 激活环境
1. 新建 project
django-admin.py startproject pxjgz
2. 新建 app
cd pxjgz 进入目录
python manage.py startapp app01
或 django-admin.py startapp app01
3. 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 list
alias cc=conda create -n $*
alias coa=activate $*
alias cod=deactivate
alias cr=conda remove --all -n $*
『补充』在mac中的使用示例
建立py3-dj,使用和删除的整个过程
-------
~ cc py3-dj python=3 django
Fetching 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 MB
The 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-3
Proceed ([y]/n)? y
Fetching packages ...
django-1.9.5-p 100% |################################| Time: 0:00:08 437.51 kB/s
setuptools-26. 100% |################################| Time: 0:00:03 154.73 kB/s
Extracting 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/py2
py2-dj /Users/howie/anaconda3/envs/py2-dj
py3-dj /Users/howie/anaconda3/envs/py3-dj
root * /Users/howie/anaconda3
? ~ coa py3-dj
(py3-dj) ? ~ python
Python 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 darwin
Type "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/py2
py2-dj /Users/howie/anaconda3/envs/py2-dj
py3-dj /Users/howie/anaconda3/envs/py3-dj
root * /Users/howie/anaconda3
? ~ cr py3-dj
Package 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-3
Proceed ([y]/n)? y
Unlinking packages ...
[ COMPLETE ]|###################################################| 100%
作者:第8哥,转载请注明出处
以上是关于小灶时间-如果你还不会用Python虚拟环境的主要内容,如果未能解决你的问题,请参考以下文章
python - 环境 - python用conda创建虚拟环境
爬虫七夕快到了,想好和女朋友看什么片了吗?来一起用 Python 爬取豆瓣电影分类排行榜