器→工具, 工具软件

Python数据科学IDE软件的选择

钱魏Way · · 534 次浏览

WinPython简介

WinPython是一个免费的、开源的、可移植的Python编程语言的发行版,适用于windows8/10以及科学和教育用途。

它是一个功能齐全的基于Python的科学环境:

  • 专为科学家、数据科学家和教育设计 (thanks to NumPy, SciPy, Sympy, Matplotlib, Pandas, pyqtgraph, etc.)
    • 使用Python与Spyder和Jupyter/IPython、Pyzo、IDLEX或IDLE进行交互式数据处理和可视化
    • 完全集成的Cython和Numba
    • 高级用户的连接器(cffi、odbc、rpy2、scilab2py、请求等)
  • 便携式
    • 在任何内存为2GB的Windows 8+上运行(Jupyter笔记本需要最新的浏览器)
    • 使用大多数应用程序设置,可以将WinPython文件夹移动到任何位置(**)(本地、网络、USB驱动器)
  • 灵活性
    • 您可以在同一台机器上安装任意多个WinPython发行版:每个发行版都是独立的和自一致的
    • 这些安装可以是不同版本的Python(7/3.8/3.9…)
  • 可定制
    • 集成的WinPython包管理器(WPPM)帮助安装、卸载或升级Python包
    • 也可以从WinPython命令提示符使用pip安装或升级包
    • 配置文件允许您在运行时设置环境变量

WinPython与其他Python发行版有所不同:

  • 非侵入性:WinPython完全位于自己的目录中,完全是一个绿色软件
  • 可定制:添加需要但未安装的包,压缩WinPython目录并将其交给
  • 做你自己的版本:为你提供了一个WinPython创建工具

一个完整的WinPython可包含以下组件:

Anaconda简介

从字面意思看,anaconda 是一种比 python 更大的蟒蛇。它作为程序包的名字,也就意味着 Anaconda 包含了 Python 以及其它的东西。事实上,Anaconda 是一个适用于科学计算的 Python 集成开发环境。它有免费版和付费版之分,并有一个极小化版本 Miniconda。使用 Anaconda 做为科学计算的开发环境,主要的优势在于安装各种程序库非常容易。

这一方面得益于 Continuum 公司在整合基础 Python 库方面作出的努力,另一方面也是因为各个开发者对于自己程序库的精心维护。这些努力使得 Anaconda 的用户将不必担心自己代码的可移植性问题,而将全部精力投入在正确性和执行效率上。而这正是科学计算领域绝大多数的从业者需要的。

Anaconda个人版本是完全免费的,Miniconda 是 Anaconda 的极小化版本,它保持了 Anaconda 的易用性,但预装库更少,其它部件,比如集成开发环境也没有附带,更适合于 headless 的使用场景。如果所需的库都已经安装齐备,那么在 Anaconda 环境下开发的 Python 程序应该可以直接在 Miniconda 环境下执行。

  • 安装了Anaconda,你就拥有了任意版本的python和各种包了。
  • 使用Anaconda,在同一个系统上维护不同的项目环境也很方便。

对于用户而言,使用 Anaconda 开发环境编写的 Python 程序很容易达到可移植性的基本要求,即与操作系统无关,因为安装每个所需要的库,都不依赖于操作系统;而 Python 语言本身是操作系统无关的(其实细节已经被开发者隐藏了)。对于开发者而言,这种可移植性可以被继承下去,因为开发的初始环境本身已经具有可移植性。

下载链接:Anaconda官网清华镜像站

Anadconda的配置

1. 添加环境变量到PATH,类似:

D:\ProgramData\Anaconda3
D:\ProgramData\Anaconda3\Scripts
D:\ProgramData\Anaconda3\Library\bin

2.修改Jupyter Lab的默认工作目录

PS C:\Users\biaod> jupyter lab --generate-config
Writing default config to: C:\Users\biaod\.jupyter\jupyter_lab_config.py
# 取消文件中的注释,并修改未你需要的路径。
c.ServerApp.notebook_dir = 'D:\ProgramData\JupyterLab'

Jupyerlab无法切换虚拟环境问题

在Windows中安装了Anaconda,由于某些包最新只支持Python 3.8,所以需要使用特定的版本。

正常的流程是:

conda create -n python38 python=3.8
conda activate python38

但在命令行中没有任何效果。网上找了下,原因是Windows10开始默认使用PowerShell命令行工具导致的。只需执行如下命令即可:

conda install -n root -c pscondaenvs pscondaenvs
Set-ExecutionPolicy RemoteSigned

如何在 JupyterLab 中把 ipykernel 切换到不同的 conda 虚拟环境?

在 base 环境中,输入:

(base) conda install ipykernel
(base) conda install nb_conda_kernels

就安装了一个自动化的工具,实现 ipython kernel install 的功能。以后,新建的虚拟环境中只要安装了 ipykernel,该环境的 Jupyter kernel 就会自动新建。

例如,新建一个名为 “python38” 的虚拟环境,新建环境时安装 ipykernel。

(base) conda create -n python38 python=3.8 ipykernel

然后就不用管了,test 环境的 python38会自动生成。

包管理工具conda

Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。这里先解释下conda、anaconda这些概念的差别。conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。

升级

升级Anaconda需要先升级conda

conda update conda
conda update anaconda
conda update anaconda-navigator # 最新版本的anaconda-navigator

3、Could not determine jupyterlab build status without nodejs

解决方案:conda install -c conda-forge nodejs

基本命令

conda --version                   # 查看 conda 版本
conda update -n base conda        # update最新版本的conda
conda create -n xxxx              # 创建名为 xxxx 的虚拟环境
conda create -n xxxx python=3.5   # 创建包含 python3.5 的名为 xxxx 的虚拟环境
conda remove -n xxxx --all        # 删除名为 xxxx 的虚拟环境
conda activate xxxx               # 进入 xxxx 环境
source activate xxxx
conda deactivate                  # 退出环境
source activate
conda env list                    # 显示所有的虚拟环境
conda info --envs                 # 查看当前环境
conda clean -p                    # 删除没有用的包
conda clean -t                    # tar打包
conda clean -y -all               # 删除所有的安装包及cache

对包的操作

conda list                  # 查看所有已经安装的包
conda list -n xxxx          # 指定查看 xxxx 虚拟环境下安装的 package
conda install -n xxxx xxx   # 在指定环境中安装 xxx 包
conda update xxx            # 更新包 xxx
conda uninstall xxx         # 卸载包 xxx

查看是否生效

conda info

包管理工具pip

基本命令

pip --version                # 查看版本
pip --help                   # 获取帮助
pip install -U pip           # 升级 pip
pip install pkg              # 安装包
pip install pkg=version      # 安装指定版本的包
pip install --upgrade pkg    # 升级包
pip uninstall pkg            # 卸载包
pip search pkg               # 搜索包
pip show                     # 显示安装包信息
pip show -f pkg              # 查看指定包的详细信息
pip list                     # 列出已安装的包
pip list -o                  # 查看可升级的包

升级

pip install --upgrade pip  # Linux、Mac
python -m pip install -U pip  # windows

conda与pip比较

  • 依赖项检查
    • pip:不一定会展示所需其他依赖包。安装包时或许会直接忽略依赖项而安装,仅在结果中提示错误。
    • conda:列出所需其他依赖包。安装包时会检查系统环境,自动安装其依赖项。可以便捷地在包的不同版本中自由切换。
  • 环境管理
    • pip:维护多个环境难度较大。
    • conda:比较方便地在不同环境之间进行切换,环境管理较为简单。
  • 对系统自带Python的影响
    • pip:在系统自带Python中包的**更新/回退版本/卸载将影响其他程序。
    • conda:不会影响系统自带Python。
  • 适用语言
    • pip:仅适用于Python。
    • conda:适用于Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。

其他请看:conda和pip的源配置方法

Anaconda与WinPython的比较

相同点

  • 完整版的WinPython和Anoconda都含有大量的科学计算包,非常适合用来做数据科学、数据分析与挖掘、机器学习等。
  • 二者都自带有Spyder,Jupyter等非常强大且成熟的IDE,编辑和调试代码十分方便。

不同点

  • 虽然都面向数据科学领域,但二者集成的软件包还是有所区别,Anoconda在大数据处理方面有自己特色的一些包。
  • WinPython采用集成的WinPython包管理器WPPM帮助安装、卸载或升级Python包;而Anoconda采用conda包管理系统。
  • Winpython是由个人维护;Anaconda是由一家数据分析服务公司维护;这个区别意味着winpython在很多方面都从简,而Anaconda会提供一些人性化设置。
  • Winpython强调便携性,被做成绿色软件,不写入注册表,安装其实就是解压到某个文件夹,移动文件夹甚至放到U盘里在其他电脑上也能用。Anaconda则算是传统的软件模式。
  • Winpython 只能在windows上使用,Anaconda则有linux的版本。
  • 目前,Anoconda的适用面和适用人群比WinPython更广。

JupyterLab桌面版

JupyterLab 是广受欢迎的 Jupyter Notebook新界面。它是一个交互式的开发环境,可用于 notebook、代码或数据,因此它的扩展性非常强。用户可以使用它编写 notebook、操作终端、编辑 markdown 文本、打开交互模式、查看 csv 文件及图片等。

尽管有很多 Python IDE(例如 Visual Studio Code、PyCharm 和最近刚出的 DataSpell)都支持编辑 Jupyter Notebooks,我在进行数据科学项目时,JupyterLab 仍然是我的首选 IDE。 作为交互式 IDE首选,JupyterLab 允许我们在基于单元格的组织中逐步可视化数据(例如,表格数据、图像、执行结果等)。

当我们使用 JupyterLab 时,使用终端或使用 Anaconda Navigator 应用程序都可以启动它。但是无论哪种情况,都必须先启动另一个应用程序,然后在浏览器中访问JupyterLab的页面。 虽然不是什么大不了的事,但多出来的一步在一定程度上代表着不便。 为了解决这个问题,JupyterLab 团队一直在努力让它变得更好。好消息是Jupyter发布了 JupyterLab 桌面应用程序的发布。

JupyterLab 开发团队,使用 Electron 构建桌面应用程序,因为 Electron 允许程序员使用 Web 开发语言(包括 JavaScript、HTML 和 CSS)开发跨平台桌面应用程序,所以桌面版的APP可以独立运行,并且兼容各种平台。需要注意的是,电脑需要安装conda,因为JupyterLab Desktop App需要conda环境作为其服务器相关的管理。

关于JupyterLab的安装使用,也可以参考先前写的文章:

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注