代码改变世界

Python开发环境搭建

好像任何一门编程语言都绕不过开发环境的搭建。比如说Java,初学者可能还没明白什么是JDK,但一般都会按照前辈们的步骤,先下载JDK,然后添加环境变量JAVA_HOME,再把JAVA_HOMEbin目录加入到环境变量PATH中,有过实际项目开发经验的朋友大多数紧接着就会安装依赖管理、项目构建工具,比如说国内常用的Maven等。GolangScala语言的开发环境搭建也都类似。至于用什么编辑器或者IDE来写代码,取决于语言特性或个人习惯,比如当前主流的vimVS CodeJetBrains全家桶、Eclipse等等。

使用Python语言的初学者建议直接安装Anaconda或者轻量级的Miniconda

为什么需要Anaconda

Anaconda官网:https://www.anaconda.com/

Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。

介绍Anaconda之前必须要简单提一下Conda。官网:https://docs.conda.io/en/latest/

Conda is an open source package management system and environment management system that runs on Windows, macOS and Linux. Conda quickly installs, runs and updates packages and their dependencies. Conda easily creates, saves, loads and switches between environments on your local computer. It was created for Python programs, but it can package and distribute software for any language.

Conda包管理器。使用Python进行数据分析时,你会用到很多第三方的包,Conda可以很好地帮助你在计算机上安装和管理这些包,包括安装、卸载和更新包。

Conda也是环境管理器。比如你在A项目中用了Python2,而B项目需要使用Python3,同时安装两个Python版本可能会造成许多混乱和错误。这时候,Conda就可以帮助你为不同的项目建立不同的运行环境。再比如说很多项目使用的包版本不同,很难同时安装多个版本,此时,可以为不同版本建立不同环境,然后切换到对应版本的环境中工作。

Anaconda包括PythonConda以及一大堆安装好的科学计算相关工具包,比如:numpypandas等等,开箱即用,非常方便。

Miniconda默认只包含PythonConda

换句话说,安装好了Anaconda,就相当于同时有了Python环境管理器包管理器以及一大堆开箱即用的科学计算工具包

安装使用Anaconda

安装Anaconda

安装非常简单,注意一下安装目录建议选择磁盘空间较大的地方。官网下载比较慢的话,可以选择清华大学镜像站下载(根据不同操作系统选择相应的包):
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D

安装成功后,命令行中敲conda info,会显示conda的版本和python的版本等详细信息;再敲conda list,会列出当前环境下所有安装的包。

换成国内镜像源

condapip默认国外镜像源,所以每次安装模块conda install xxx或者pip install xxx的时候非常慢,换成国内的镜像源会显著加快模块安装速度。

  • 修改Conda镜像源
    详细操作见:
    https://mirror.tuna.tsinghua.edu.cn/help/anaconda/

  • 修改pip镜像源
    Linux系统操作命令如下:

mkdir ~/.pip
cd ~/.pip
vim pip.conf

添加中科大镜像源,内容如下:

[global]
index-url = https://pypi.mirrors.ustc.edu.cn/simple/

不知道你有没有疑问,既然有了Conda包管理器,为什么Anaconda环境中,可能还需要用pip安装包呢?

因为尽管在Anaconda下我们可以很方便的使用conda install xxx来安装我们需要的依赖,但是Anaconda本身只提供部分包,远没有pip提供的包多,有时conda无法安装我们需要的包,此时可能需要用pip将其装到conda环境里。

那么Anaconda环境下pip命令安装的包在哪里呢?会不会影响其他环境呢?

首先要确保用的是本环境的pip,这样pip install xxx时,包才会安装到本环境中。Linux系统可以使用which pip来查看当前使用的pip是哪个环境的pip

另外需要注意一下:安装特定版本的包,conda=pip==。举例来说:

conda install xxx=1.0.0
pip install xxx==1.0.0

使用Anaconda

安装好了,默认是在base虚拟环境下,此时我们从base环境复制一份出来,在新环境里工作。

# 复制base环境, 创建test环境
conda create --name test --clone base

# 激活test环境
conda activate test

取消Conda默认激活base虚拟环境

conda config --set auto_activate_base false

再列出我本机的所有环境,如下,可见当前有2个环境,当前激活的是test环境:

(test) ➜  ~ conda info -e
# conda environments:
#
base                     /Volumes/300g/opt/anaconda3
test                  *  /Volumes/300g/opt/anaconda3/envs/test

Anaconda默认安装了jupyter,命令行输入:

jupyter notebook

此时会自动弹出浏览器窗口打开Jupyter Notebook网页,默认为http://localhost:8888。下面会简单介绍一下Jupyter Notebook

这里顺便贴一下conda一些常用命令:

  • 虚拟环境管理
# 创建环境,后面的python=3.6是指定python的版本
conda create --name env_name python=3.6

# 创建包含某些包的环境(也可以加上版本信息)
conda create --name env_name python=3.7 numpy scrapy

# 激活某个环境
conda activate env_name

# 关闭某个环境
conda deactivate

# 复制某个环境
conda create --name new_env_name --clone old_env_name

# 删除某个环境
conda remove --name env_name --all

# 生成需要分享环境的yml文件(需要在虚拟环境中执行)
conda env export > environment.yml

# 别人在自己本地使用yml文件创建虚拟环境
conda env create -f environment.yml
  • 包管理
# 列出当前环境下所有安装的包
conda list

# 列举一个指定环境下的所有包
conda list -n env_name

# 查询库
conda search scrapys

# 安装库安装时可以指定版本例如:(scrapy=1.5.0)
conda install scrapy

# 为指定环境安装某个包
conda install --name target_env_name package_name

# 更新安装的库
conda update scrapy

# 更新指定环境某个包
conda update -n target_env_name package_name

# 更新所有包
conda update --all

# 删除已经安装的库
conda remove scrapy

# 删除指定环境某个包
conda remove -n target_env_name package_name

更多命令请查看官方文档或者查询帮助命令:

conda --help

conda install --help

使用Jupyter Notebook

在线体验: https://jupyter.org/tryhttps://mybinder.org/

Jupyter源于2014年的ipython项目,逐渐发展为支持跨所有编程语言的交互式数据科学和科学计算。Jupyter Notebook,原名IPython Notebook,是IPython的加强网页版,一个开源Web应用程序,是一款程序员和科学工作者的编程/文档/笔记/展示软件。上一篇博客一文上手Python3就是用Jupyter Notebook写的。效果如下:

Jupyter Notebook可以实时运行代码、渲染Markdown,将代码、文本说明和可视化整合在一起,适合数据分析领域的探索性工作,可迭代式地改进代码来改进解决方法。

Jupyter Notebook中一对In Out会话被视作一个代码单元,称为cell。如果cell行号前有*,表示代码正在运行中。

Jupyter Notebook支持两种模式:

  • 编辑模式(Enter
    命令模式下回车Enter或鼠标双击cell进入编辑模式

  • 命令模式(Esc)
    Esc退出编辑,进入命令模式

熟练在这两种模式下工作,再结合一些常用的快捷键,写代码以及文档的效率会大大提高。

Jupyter Notebook中,可以使用?在另一个窗口中显示文档。

例如,len?将创建与help(len)几乎相同的内容,并在浏览器底部窗口中显示它。

此外,如果使用两个问号,如my_sum??,将显示实现该函数的Python代码。

安装jupyter_contrib_nbextensions

注意:先关闭jupyter后台服务,然后执行下面的命令

pip install jupyter_contrib_nbextensions

jupyter contrib nbextension install --user --skip-running-check

重启后,勾选需要的选项如下:

此时就有了代码提示等功能,如下:

posted @ 2021-04-25 08:58  行无际  阅读(1186)  评论(0编辑  收藏  举报