笔记记录在.ipynb
文件中,用Jupyter打开。pychram2017.1版本开始也支持.ipynb
文件,也可以用pychram打开
重要更新:
- 2018-04-06: 新增Project文件夹,可以将练手的项目放在上面,互相学习
git branch dev
git branch feature
git checkout dev
git add [filename]
git commit -m "change" [filename]
git checkout master
git merge dev
git push origin dev
git checkout feature
git fetch origin master
git log -p dev feature
比较刚抓取的更新和当前dev开发分支有和异同,审核后再合并到dev
git checkout dev
git merge feature
Anaconda是一个python集成环境,主要面向python科学计算和数据分析上,因此它集成了许多第三方科学计算的库,如 NumPy,SciPy,matplotlib 等。Anaconda有自己的包管理工具conda,类似于python的pip,但是它的功能用法要强大许多。它有自己的文档,点击前面conda链接访问使用文档。本文后部分也会介绍conda的一些常用命令。
- 下载Anaconda,如果下不动可以到这里下载,找自己需要的版本
- 运行安装程序,如 Anaconda3-4.3.1-Windows-x86_64.exe,选择要安装的路径,如 D:\Anaconda3
- 进行到如下步骤时(如下图),把第一个勾去掉(添加环境变量),我们稍后自己添加。
- 安装
如果之前装过python的,建议卸载掉,避免环境变量上的冲突
- (右键)计算机(我的电脑) --> 属性 --> (左边栏)高级系统设置 --> (右下)环境变量
- 在用户变量里新建以下三个变量,及其对应值
- 变量名:
ANACONDA3
变量值:(你的安装路径)\Anaconda3
(如D:\DevelopTools\Anaconda3
)- 变量名:
ANACONDA3_SCRIPTS
变量值:(你的安装路径)\Anaconda3\Scripts;(你的安装路径)\Anaconda3\Tools\Scripts
(如D:\DevelopTools\Anaconda3\Scripts;D:\DevelopTools\Anaconda3\Tools\Scripts
)- 变量名:
ANACONDA3_TOOLS
变量值:(你的安装路径)\Anaconda3\Tools
(如D:\DevelopTools\Anaconda3\Tools
)
- 在path变量名里添加以下三个变量值
- %ANACONDA3%
- %ANACONDA3_SCRIPTS%
- %ANACONDA3_TOOLS%
- 打开cmd,输入python,检查版本号与你安装的是否一致。
conda是一个开源的包管理系统和环境管理系统,它专门用来处理安装多版本的软件包和依赖,并且能轻松地在之间切换而互不影响。它支持OSX,Linux,和Windows,最初它是为python打包和发布软件专门设计的,现在它支持的语言已经有多种:Python,R,Ruby,Lua,Scala,Java,Javascript,C/C++,FORTRAN
Package, dependency and environment management for any language: Python, R, Ruby, Lua, Scala, Java, Javascript, C/ C++, FORTRAN
Conda is an open source package management system and environment management system for installing multiple versions of software packages and their dependencies and switching easily between them. It works on Linux, OS X and Windows, and was created for Python programs but can package and distribute any software.
Conda is included in Anaconda and Miniconda. Conda is also included in the Continuum subscriptions of Anaconda, which provide on-site enterprise package and environment management for Python, R, Node.js, Java, and other application stacks. Conda is also available on pypi, although that approach may not be as up-to-date. Miniconda is a small “bootstrap” version that includes only conda, Python, and the packages they depend on. Over 720 scientific packages and their dependencies can be installed individually from the Continuum repository with the “conda install” command.
Anaconda includes conda, conda-build, Python, and over 150 automatically installed scientific packages and their dependencies. As with Miniconda, over 250 additional scientific packages can be installed individually with the “conda install” command.
pip install conda uses the released version on pypi. This version allows you to create new conda environments using any python installation, and a new version of Python will then be installed into those environments. These environments are still considered “Anaconda installations.”
The conda command is the primary interface for managing Anaconda installations. It can query and search the Anaconda package index and current Anaconda installation, create new conda environments, and install and update packages into existing conda environments.
conda下载软件包时,默认从官方源下载。因为GFW的原因,很多时候下载网速会非常慢,甚至访问不到,根本下不下来。这时我们可以通过更改软件源来解决这一监介局面。国内比较好的镜像源站要数清华大学开源软件镜像站了,它包含了许多开源镜像,如LinuxISO,Python,R等等。下面我们进行配置
- 找到 .condarc 文件,位置在你的用户目录下(如:C:\Users\username)
- 用记事本或文本编辑器打开它
- 把它替换成如下内容:
channels:
- https://pypi.tuna.tsinghua.edu.cn/simple/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/mro/
show_channel_urls: true
这几个源基本涵盖了所有需要的软件在里面,包括R语言
- 保存
- 访问Anaconda 镜像使用帮助,阅读并执行。下面是搬运
- 在终端运行以下命令:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/mro/
conda config --set show_channel_urls yes
这几个源基本涵盖了所有需要的软件在里面,包括R语言
- 找到 .condarc 文件,位置在你的用户目录下(如:C:\Users\username)
- 用记事本或文本编辑器打开它
- 删除 -default 一栏
- 打开PyCharm
- 选择 File --> Default Settings --> Project Interpreter
- 在Project Interpreter下拉栏里选择Anaconda的选项
如果没有,则点击右边的 设置 --> Add Local,找到Anaconda文件夹下的python.exe,选中,点击OK
- 点击右边的 +,弹出 Available Packages 窗口,点击下方的 Manage Repositories
- 在 Manage Repositories 窗口里,点击右边的 +,输入以下源链接,注意,要一条条添加
https://pypi.tuna.tsinghua.edu.cn/simple/
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/mro/
- 删除 default 一栏
conda 的官方文档在这里
- conda的配置信息一般都写在 .condarc 文件里,输入
conda config --help
查看命令参数与用法
例:
输入:
conda config --show
返回:
add_anaconda_token: True add_pip_as_python_dependency: True allow_non_channel_urls: True allow_softlinks: True always_copy: False always_softlink: False always_yes: False anaconda_upload: None auto_update_conda: True changeps1: True channel_alias: https://conda.anaconda.org channel_priority: True channels: - https://pypi.tuna.tsinghua.edu.cn/simple/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/mro/ client_ssl_cert: client_ssl_cert_key: clobber: False create_default_packages: [] custom_channels: pkgs/free: https://repo.continuum.io/ pkgs/r: https://repo.continuum.io/ pkgs/pro: https://repo.continuum.io/ pkgs/msys2: https://repo.continuum.io/ custom_multichannels: defaults: ["https://repo.continuum.io/pkgs/free", "https://repo.continuum.io/pkgs/r", "https://repo.continuum.io/pkgs/pro", "https://repo.continuum.io/pkgs/msys2"] local: [] default_channels: - https://repo.continuum.io/pkgs/free - https://repo.continuum.io/pkgs/r - https://repo.continuum.io/pkgs/pro - https://repo.continuum.io/pkgs/msys2 disallow: [] envs_dirs: - D:\DevelopTools\Anaconda3\envs - C:\Users\yang\AppData\Local\conda\conda\envs - C:\Users\yang\.conda\envs force: False json: False local_repodata_ttl: 1 migrated_channel_aliases: [] offline: False path_conflict: clobber pinned_packages: [] pkgs_dirs: - D:\DevelopTools\Anaconda3\pkgs - C:\Users\yang\AppData\Local\conda\conda\pkgs proxy_servers: {} quiet: False remote_connect_timeout_secs: 9.15 remote_max_retries: 3 remote_read_timeout_secs: 60.0 rollback_enabled: True shortcuts: True show_channel_urls: True ssl_verify: True track_features: [] use_pip: True verbosity: 0
- 查看conda版本:
conda --version
- 升级conda版本:
conda update conda
python的版本问题一直以来饱受(我的)诟病,特别是 python2 和 python3 的语法可是有很大区别,以致于一些库的使用都造成了很大麻烦。但是,你又不希望自己的系统同时装两个,甚至好几个版本的python,光是想怎样切换都是一件头疼的问题。在没有conda之前,我有尝试过 virtualenv 和 pyenv 这两种python多版本环境管理工具,但是总感觉不太友好。直到我TM遇到了conda...
因为Anaconda是一个面向于科学计算的python集成环境,所以它包含的库大多都是做科学计算的。但是像Web开发方面的库和框架(如Django)Anaconda就没有集成在里面。假如我现在要用python做Web开发,而且我只安装了Anaconda,我又不想直接把Django装到Anaconda里面,我想把它跟其他包隔离开来,Anaconda专门处理数据分析的问题。这时conda的环境管理就派上用场了。
- 输入
conda env --help
查看有关conda环境管理的命令与帮助
conda的环境创建一般在Anaconda\env\
目录下,假如需要更改路径,输入conda create --help
查看有关说明
- 假如你的Anaconda版本为python3,现在你想创建一个新的环境,基于python2版本,不含任何第三方库,只是完整干净的python2环境。你只需在终端输入:
conda create --name py2 python=2
这里py2是环境名,是自定义的。
- 假如你要创建一个新的环境,用于Web开发,版本与当前Anaconda的python版本一致,需同时包含Django库,你只需在终端输入:
conda create --name [这里填你的环境名] django
- 输入
activate [你的环境名]
激活环境 - 输入
deactivate [你的环境名]
注销环境
- 输入
conda info --envs
- 或者输入
conda env list
- 输入
conda info --envs
- 新建环境时,克隆一个已有环境到其中,输入
conda cerate --name [新环境名] --clone [已有环境名]
- 当你想删除某个环境时,输入
conda remove --name [你的环境名]
你可能会想把你打包的环境发给你的基友,这样他就可以轻松的跑你(手动滑稽)在这个环境上写的程序,做的有趣的项目。把一切你用到的包,版本和环境打包给他,你只需给他一份environment.yml文件的copy
- 首先,激活你想要打包的环境,如heiheihei(环境名),输入
activate heiheihei
注意,假如你已有environment.yml文件,那么将会被新文件覆盖
- 导出environment.yml文件
conda env export > environment.yml
- 把文件**发(cha)给(ru)**你的基友
- 你的基友根据文件来创建环境
conda env create -f environment.yml
- 基友激活你的的环境heiheihei
activate heiheihei
- 查看当前环境已安装的包
conda list
- 查找包,确定是否能安装
conda search [包名]
- 在当前环境安装软件包
conda install [包名]
- 在某一环境安装软件包
conda install --name [环境名] [包名]
- 升级软件包
conda update [包名]
,升级condaconda update conda
,升级python版本conda update python
- 删除当前环境软件包
conda remove [包名]
- 删除某一环境软件包
conda remove --name [环境名] [包名]
R语言是一个专门用来做统计分析的语言,内置庞大统计分析函数库,为数据分析量身而制。详细介绍访问R官方网站,这里不在赘述
- 安装所有R语言的包和依赖
conda install r r-essentials
- 升级安装的R包和依赖
conda update r r-essentials
Anaconda里除了一大堆第三方包,还有一些非常niuchalable的工具,其中Jupyter就是这其中一个。
Jupyter全称应该叫Jupyter Notebook,顾名思义,Jupyter定义为笔记本。而且Jupyter的确是一种交互式笔记本,可以支持python在内的多达40种语言的输入输出。它的前身(应该是前身)就是出名的 IPython Notebook,后来整个Ipython项目升级为Jupyter,就有了现在的Jupyter Notebook
Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等
Jupyter的使用其实非常容易上手。只要你习惯了这种输入输出方式,你就会觉得写代码和写博客一样有趣(手动滑稽)。当你开始习惯在上面写代码,记笔记时,你就会开始有折腾的心理了。下面讲讲我的折腾(用法)
注意:Jupyter的输入输出栏(姑且先这么叫)在Jupyter里称为cell。下面有讲到输入输出栏的地方都称作cell。
这是我第一个想到要去折腾的事情。因为毕业设计的原因,我需要微微地用一下R语言做一些统计分析的工作(微小的工作)。我那时并没有了解到Anaconda就可以帮我完成这件工作,只需要一条命令。我天真地下载了R的安装包,然后查了一堆关键词为 Jupyter,R 的资料,经过一轮番配置,才艰难完成。等对conda有一定了解的时候,才知道自己真的上台拿衣服。下面说一下Anaconda是如何做到的。
- 首先,完。(其实这一步在配置源的时候就已经完成了。就是添加R的镜像源,url为以下)
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
- 然后,完。(第二步也就是执行让Anaconda支持R语言一节里的命令
conda install r r-essentials
) - 最后,打开Jupyter,在new下拉菜单里你就会看到R这一选项了。
是不是很简单?你以为完了吗?拿衣服!所以说有时候长者的话,要听完,不然下场就是上台拿衣服。
当你在new菜单里选择了R时,会新建一个R语言的notebook。但是你会看到浏览器蹦出了两个提醒窗口(反正我是看到了),具体内容是有关R的一个名为formatR的package缺失的问题。我之前一直都忽略它,因为我发现我依然能正常地在Jupyter里写R代码。但是作为一个强迫自己成为强迫症患者患者,绝不容许这种弹窗的出现!!!所以我查了下formatR这个东西,我发现了这里。原来formatR是一个R语言的自动排版的依赖库,能进行排版缩进,语法高亮的处理。怪不得之前写R的时候总觉得怎么R这么单调,连关键字都没高亮。现在完事大吉。下面是解决过程。你也可以参考我发现的那个链接自己解决。
- 打开Jupyter,新建R notebook
- 在cell里输入
install.packages("formatR", repos = "http://cran.rstudio.com")
- 按
shift
+Enter
执行
现在,你可以愉快地学习R语言了(手动滑稽)。
这也是我折腾的一个点。写代码,或者说打字吧,最烦就是整天要鼠标键盘来回切。命令的熟悉是必须的。下面讲讲我常用的命令。
首先查看命令捷键在导航栏的 Help --> Keyboard Shortcuts选项里
- 命令模式(按
Esc
),一般在命令模式下才能执行下面的快捷键命令
Enter
:进入编辑模式,在当前的cell继续编辑M
:当前cell变为markdown格式Y
:当前cell变为代码模式
- 编辑模式(按
Enter
),一般在命令模式下才能执行下面的快捷键命令
ctrl
+s
:保存ctrl
+z
:撤销
更多命令请自行探索。
插件是每个软件最有可玩性的地方之一,儿Jupyter作为一个Web应用程序,当然不会缺插件与开发者。不得不说,Jupyter的插件还是挺实用的。
一个屌的软件背后通常都会有一堆屌的插件 ----沃·兹基硕德
要给Jupyter装插件,你需要装以下两个东西
- jupyter_contrib_nbextensions
- jupyter_nbextensions_configurator
这两个东西都是github上的项目,他们的安装教程在README里已经有很清晰的描述,非常简单,也是几条命令的事。建议直接参考。这里不再给出安装步骤。
下面介绍一些好的插件
这是一个给markdown生成目录的插件,写东西很爽(手动滑稽)
目前只有这个插件用得比较多,值得推荐。当然还有很多不错的插件如python自动排版插件Autopep8,可以根据你需要处理的问题,自动在cell头添加import...的Snippets Menu。等等。等待你的发掘