Anaconda 是一个用于科学计算的 Python 发行版 支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。
安装包可以到 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 下载。
具体安装步骤自行百度。
一个虚拟化 从电脑独立开辟出来的环境。通俗的来讲 虚拟环境就是借助虚拟机docker来把一部分内容独立出来 我们把这部分独立出来的东西称作“容器” 在这个容器中 我们可以只安装我们需要的依赖包 各个容器之间互相隔离 互不影响。譬如 本次学习需要用到Django 我们可以做一个Django的虚拟环境 里面只需要安装Django相关包就可以了 需要Scrapy库 就在开辟一个独立空间来学习Scrapy库相关就行了。
为什么使用虚拟环境在实际项目开发中 我们通常会根据自己的需求去下载各种相应的框架库 如Scrapy、Beautiful Soup等 但是可能每个项目使用的框架库并不一样 或使用框架的版本不一样 这样需要我们根据需求不断的更新或卸载相应的库。直接怼我们的Python环境操作会让我们的开发环境和项目造成很多不必要的麻烦 管理也相当混乱。如一下场景
场景1 项目A需要某个框架1.0版本 项目B需要这个库的2.0版本。如果没有安装虚拟环境 那么当你使用这两个项目时 你就需要 来回 的卸载安装了 这样很容易就给你的项目带来莫名的错误
场景2 公司之前的项目需要python2.7环境下运行 而你接手的项目需要在python3环境中运行 想想就应该知道 如果不使用虚拟环境 这这两个项目可能无法同时使用 使用python3则公司之前的项目可能无法运行 反正则新项目运行有麻烦。而如果虚拟环境可以分别为这两个项目配置不同的运行环境 这样两个项目就可以同时运行。
Tips:其实虚拟环境好处也确实比较多 会给我们项目的开发带来许多的好处 但不要贪玩哦。
使用和管理虚拟环境 运行Anaconda prompt检验当前conda的版本conda -V创建虚拟环境
conda create -n env_name python x.x #同时可以安装指定库 conda create -n env_name numpy matplotlib python 3.6
env_name 为虚拟环境名称 x.x为虚拟环境python的版本 根据需求来定。
激活虚拟环境conda activate env_name退出虚拟环境
conda deactivate env_name查看已有的虚拟环境
conda env list 或 conda info -e如果没有进入到当前虚拟环境 使用-n env_name 的方式去指定对某个虚拟环境安装软件
# 查看指定环境下已安装的package conda list -n env_name # 安装指定环境下某个package conda install -n env_name [package] # 删除指定环境下某个package conda remove -n env_name [package] # 更新指定环境下某个package conda update -n env_name [package]重命名环境
conda create -n env_name1 --clone env_name2删除虚拟环境
conda remove -n env_name --all删除虚拟环境中的包
conda remove --name $your_env_name $package_name 包名 检查更新当前conda
conda update conda换源
有时用国外镜像源下载库的速度比较慢 因此可以将镜像源换位国内的。
Windows 用户无法直接创建名为 .condarc 的文件 可先执行 conda config --set show_channel_urls yes 生成该文件之后再修改。
channels: - defaults show_channel_urls: true default_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
然后运行 conda clean -i 清除索引缓存即可。
Jupyter Notebook Jupyter notebook简介Jupyter这个名字是它要服务的三种语言的缩写 Julia PYThon和R 这个名字与“木星 jupiter ”谐音。
之前我们只能在普通的 Python shell 或者在IDE 集成开发环境 中写代码 然后在word中写文档来说明你的项目。这个过程很反锁 而且写完代码之后 还需要重头回顾一遍代码来写文档。最致命的地方在于 有些数据分析的中间结果 还需要重新跑代码 然后把结果弄到文档里给客户看。但是notebook 可以直接在代码旁写出叙述性文档 而不是另外编写单独的文档。也就是它可以能将代码、文档等这一切集中到一处 让用户一目了然。
例如
安装Anaconda时自带Jupyter notebook 如果没有可以通过执行命令行pip3 install jupyter即可
双击Jupyter notebook图标。在终端中输入以下命令
Jupyter notebook
ps:如果同时启动多个Jupyter Notebook 由于默认端口“8888”被占用 因此地址栏中的数字将从“8888”起 每多启动一个Jupyter Notebook数字就加1 如“8889”、“8890”…
指定端口启动jupyter notebook --port port_number启动服务器但不打开浏览器
jupyter notebook --no-browser关闭 notebook服务器
通过在终端中按两次 Ctrl C 可以关闭整个服务器。
关闭Jupler notebook文件对于关闭 notebook 可以通过选中文件 点击 “shutdown” 来操作操作 但请确认先保存。
或者直接关闭notebook的页面即可。
ps:这会立即关闭所有运行中的 notebook 记得关闭文件。
关闭notebook服务器后 下次启动再打开notebook 当你继续在该notebook中写代码时 发现之前的变量无法访问了。需要你在该notebook的Kernerl选项卡中选择“Run All”重新编译下之前的代码。
Jupyter notebook有两种不同的键盘输入模式
① 编辑模式 编辑代码 单元格显示绿色边框。
切换方式 单击单元格内 或者直接按键盘上 Enter 键 即可进入编辑模式。
② 命令模式 执行命令 比如在上添加一个单元格 在下添加一个单元格 删除选中的单元格等 单元格显示***蓝色***边框。
切换方式 单击单元格外任何位置 或者直接按键盘上 Esc 键 即可进入命令模式。
平时在 IDE 软件里敲代码一样 可以编写和执行代码 给变量赋值、定义函数和类、导入包等。可以通过 Shift Enter 执行单元格代码。
Markdowen模式 用来记笔记,可以加入链接、将文本样式设为粗体或斜体和设置代码格式。通过 Shift Enter 或 Ctrl Enter 可运行 Markdown 单元格 将 Markdown 呈现为格式化文本。
在code编辑模式下 Esc一下切换到命令模式 然后M键一下切换到markdown模式。
可以直接修改
或者点击“File”- Rename 对文件进行重命名
然后进行保存。
上传完成后 点击上传的文件 就可以在notebook中打开了
下载notebook文件点击File- Download as 可以选择多种格式下载你的notebook。可以根据下面的用途来选择不同的下载格式
如果想和客户分享数据分析成果 选择将notebook下载为HTML文件。如果希望将自己的数据分析成果和代码嵌入到项目中 可以选择Python .py 模块 这样可以将我的代码融入项目中 成为子模块 方便和其他开发人员共同完成任务。如果想要在博客或文档中使用 notebook 我就选择Markdown格式。默认的notebook文件后缀是.ipynb 快捷键 网页上的Jupyter Notebook应用notebook 快捷键 能让你无需使用鼠标和工具栏 快速使用键盘与单元格交互。虽然了解这些快捷键需要花费一点时间 但熟练掌握之后 可以大大提高工作效率。快捷键可以通过单元格 蓝色 状态下按 “h” 来查看
1. shift enter notebook单元格内执行代码 并且自动跳至下一个的单元格 2. tab 自动补齐代码 相当于eclipse的 alt / 3. shift tab 连按2次 显示注释 相当于eclipse的f2 命令模式 蓝框 和 编辑模式 绿框 的切换 蓝 - 绿 Enter 绿 - 蓝 Esc 4. 当前单元格下方创建单元格 命令模式下 A 5. 当前单元格上方创建单元格 (命令模式下) B 6. 当前单元格MarkDown模式和Code模式切换 命令模式下 m到c为 Y , c到m为 M 7. 当前单元格内容增加行号 命令模式下 L 8. 删除单元格 连续两次按 D 或者 x 9. 保存 S魔法 Magic 函数
Magic关键字是 IPython 的一些高级用法 可以运行特殊的命令 然后控制 notebook。例如 在 notebook 中可以使用%matplotlib 将 matplotlib 设置为以交互方式工作。
Magic 命令的前面带有一个或两个百分号 % 或 %% 分别代表行 Magic 命令和单元格 Magic 命令。行 Magic 命令仅应用于编写 Magic 命令时所在的行 而单元格 Magic 命令应用于整个单元格。
比如
1.运行外部python源文件 %run xxx.py 2.计算statement的运行时间:%time statement 3.计算statement的平均运行时间:%timeit statement 4.测试多行代码的平均运行时间 %%timeit statement1 statement2 statement3
当然还有很多 Magic 关键字的使用 更多内容请参考 http://ipython.readthedocs.io/en/stable/interactive/magics.html
Jupyter Notebook内核管理 查看所有kerneljupyter kernelspec list删除kernel
jupyter kernelspec remove xxxx切换kernel
一般情况下 可以新建文件来选择kernel。
但是有时候会显现无法切换kernel的情况
jupyter一直显示No module named ‘torch’ 用cmd查看torch.version 可以打印出来。原因就是在使用Jupyter Notebook的时候 加载的仍然是默认的Python Kernel。
首先查看所有kernel 看需要使用的kernel是否存在Jupyter Notebook中。
jupyter kernelspec list
如果不在的话 可以通过一下方案解决
. 安装ipykerneljupyter kernelspec list
conda install ipykernel #如果不行的话可以使用 pip install ipykernel #不要问为什么 问就是不知道 计算机的神奇之处激活虚拟环境
conda activate env_name将环境写入Notebook的kernel中
python -m ipykernel install --user --name env_name --display-name name(jupyter显示名称)打开Jupyter notebook 新建Python文件 即可看到创建的环境。
jupyter notebook 虚拟环境中执行该命令
但是我执行该步骤后 虽然可以在jupyter中选择该内核 虚拟环境 但是torch库报错
然后我在终端的python编译器中输入代码import sys sys.executable 查看路径 发现可以发现二者路径不一样 使用Jupyter Notebook的时候 加载的仍然是默认的Python Kernel 而且在Anaconda prompt中出现“importError: cannot import name ‘generator_to_async_generator’”。
import sys sys.executable
我的解决方案是通过以下方式打开jupyter notebook即可 中间也安装了nb_conda_kernels等包 不知道问题的解决跟这些有没有关 。当然网上也有一些其他的解决方案。
此时此刻 jupyter notebook安装成功 我们可以在上面搞一些事情… 下集见



