阅读:68
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:其实虚拟环境好处也确实比较多,会给我们项目的开发带来许多的好处,但不要贪玩哦。
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
# 查看指定环境下已安装的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 update conda
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这个名字是它要服务的三种语言的缩写:Julia,PYThon和R,这个名字与“木星(jupiter)”谐音。
之前我们只能在普通的 Python shell 或者在IDE(集成开发环境)中写代码,然后在word中写文档来说明你的项目。这个过程很反锁,而且写完代码之后,还需要重头回顾一遍代码来写文档。最致命的地方在于,有些数据分析的中间结果,还需要重新跑代码,然后把结果弄到文档里给客户看。但是notebook 可以直接在代码旁写出叙述性文档,而不是另外编写单独的文档。也就是它可以能将代码、文档等这一切集中到一处,让用户一目了然。
例如:
安装Anaconda时自带Jupyter notebook,如果没有可以通过执行命令行pip3 install jupyter
即可
Jupyter notebook
ps:如果同时启动多个Jupyter Notebook,由于默认端口“8888”被占用,因此地址栏中的数字将从“8888”起,每多启动一个Jupyter Notebook数字就加1,如“8889”、“8890”…
jupyter notebook --port <port_number>
jupyter notebook --no-browser
通过在终端中按两次 Ctrl + C,可以关闭整个服务器。
对于关闭 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中打开了
点击File->Download as,可以选择多种格式下载你的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关键字是 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 kernelspec list
jupyter kernelspec remove xxxx
jupyter kernelspec list
如果不在的话,可以通过一下方案解决:
jupyter kernelspec list
conda install ipykernel
#如果不行的话可以使用
pip install ipykernel #不要问为什么,问就是不知道(计算机的神奇之处)
conda activate env_name
python -m ipykernel install --user --name env_name --display-name "name(jupyter显示名称)"
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安装成功,我们可以在上面搞一些事情…,下集见
问题1:终端显示ImportError: cannot import name 'secure_write'
,jupyter界面显示jupyter连接失败到后台服务的连接没能建立, 我们会继续尝试重连, 请检查网络连接还有服务配置.
解决办法:首先更新 jupyter_client版本
pip install --upgrade jupyter_client
然后可能会显示"AttributeError: type object 'IOLoop' has no attribute 'initialized' "
,这是因为tornado版本过高,不支持jupyter notebook,可以将 降低tornado版本
conda install tornado=4.5