有关于使用Atom进行Python开发的网上资料比较少,最近发现使用Atom结合Hydrogen插件进行Python开发,尤其是数据挖掘相关的工作,整体体验要好于Vscode,Vscode虽然说也有连接Jupyter的工具,但是交互式的开发Hydrogen体验更好。

这里放了个动图来展示一下Hydrogen的强大

插件安装

Python

  • Hydrogen
  • atom-ide-ui
  • ide-python

这里要注意,本地的pip需要 安装 python-language-server[all],在ide-python的readme中有详细说明

远程连接

  • Remote FTP

美化

  • simplified-chinese-menu(汉化补丁)

  • file-icons(文件夹图标)

  • bracket-colorizer(彩虹括号,找了好久,确定就是必须配合暗色主题)

  • atom-bracket-highlight(括号高亮)

  • atom-clock(加个时钟在右下角)

  • highlight-selected(高亮选择)

  • minimap(类似sublime的右侧map栏)

  • minimap-highlight-selected(选择代码后,map上也高亮,方便定位代码)

插件配置

Remote FTP

这里先讲一下我的需求,我是需要利用其连接公司服务器上的内容,但是公司服务器是需要跳板机的,所以我需要通过跳板机才能访问,因此配置上会有些复杂

{
"protocol": "sftp",
"host": "跳板机域名", // string - Hostname or IP address of the server. Default: 'localhost'
"port": 跳板机端口, // integer - Port number of the server. Default: 22
"user": "用户名", // string - Username for authentication. Default: (none)
"pass": "如果用密钥这里就不用填", // string - Password for password-based user authentication. Default: (none)
"promptForPass": false, // boolean - Set to true for enable password/passphrase dialog. This will prevent from using cleartext password/passphrase in this config. Default: false
"remote": "实际的服务器目录,例如:/服务器域名/用户名/目录", // try to use absolute paths starting with /
"agent": "", // string - Path to ssh-agent's UNIX socket for ssh-agent-based user authentication. Linux/Mac users can set "env" as a value to use env SSH_AUTH_SOCK variable. Windows users: set to 'pageant' for authenticating with Pageant or (actual) path to a cygwin "UNIX socket." Default: (none)
"privatekey": "本地私钥path", // string - Absolute path to the private key file (in OpenSSH format). Default: (none)
"passphrase": "", // string - For an encrypted private key, this is the passphrase used to decrypt it. Default: (none)
"hosthash": "", // string - 'md5' or 'sha1'. The host's key is hashed using this method and passed to the hostVerifier function. Default: (none)
"ignorehost": true,
"connTimeout": 10000, // integer - How long (in milliseconds) to wait for the SSH handshake to complete. Default: 10000
"keepalive": 10000, // integer - How often (in milliseconds) to send SSH-level keepalive packets to the server (in a similar way as OpenSSH's ServerAliveInterval config option). Set to 0 to disable. Default: 10000
"keyboardInteractive": 如果要用动态令牌,这里就要填true, // boolean - Set to true for enable verifyCode dialog. Keyboard interaction authentication mechanism. For example using Google Authentication (Multi factor)
"keyboardInteractiveForPass": false, // boolean - Set to true for enable keyboard interaction and use pass options for password. No open dialog.
"remoteCommand": "",
"remoteShell": "",
"watch":[],
"watchTimeout":500, // integer - The duration ( in milliseconds ) from when the file was last changed for the upload to begin.
}

ide-python

需要配置一下Python Executable

填写你的python路径,比如使用的是conda虚拟环境,就这样写

/xxx/anaconda3/envs/xxx/bin/python

Hydrogen

连接本地Kernel

首先需要在上面填写的路径下的python环境中安装ipykernel

python -m ipykernel install --user --name py37

然后用atom打开一个py文件,输入

# %%
print('hello atom') # %%
print('每一个# %%代表一个新的cell')

然后再第2行末尾按ctrl+enter就会自动弹出来让你选择环境的弹窗,选择刚刚新建的环境即可

然后在Hydrogen里面通过使用# %%来分割每一个cell,在Mac中使用option+shift+enter组合键来实现运行当前整个ceil,使用command+enter实现运行当前行,使用shift+enter实现运行当前行并跳转下一行,具体可参考官方文档

连接远程Kernel

连接远程的Jupyter只需要配置一下Hydrogen设置里面的Kernel Gateways,填上如下内容即可

[{"name": "Remote server",
"options": {
"baseUrl": "jupyter url",
"token": "jupyter token"
}
}]

然后点击Connect to Remote Kernel即可

更好地使用Atom支持基于Jupyter的Python开发的更多相关文章

  1. 配置基于Vim的Python开发环境

    配置基于Vim的Python开发环境插件 Vundle YouCompleteMe NERDTree Vim-Jinja2-Syntax set nocompatible " be iMpr ...

  2. 基于Pycharm的Python开发环境配置

    基于Pycharm的Python开发环境配置 编辑于2020-11-18 Python安装 双击桌面的Python3.x安装包. 勾选Add to path. 方便起见,选择Install now.下 ...

  3. nginx unit 1.8 支持基于java servlet 的开发模型

    最近unit 1.8 发布了,有两个比较大的新特性,内部请求路由,以及java servlet 容器应用的开发 内部请求路由配置参考 { "routes": [ { "m ...

  4. 基于linux运用python开发知识点滴

    我是小白,希望我的文章能对小白们有点作用. A.Linux的开源,优势明显,如何使用,基本命令如下: 个人认为最基础的两种操作: 1.文件操作: ls 看文件夹下内容 ls -a 隐藏文件 -l非隐藏 ...

  5. Ubuntu下基于Virtualenv构建Python开发环境

    1.安装virtualenv并建立虚拟环境 1).更新pip版本 sudo pip install --upgrade pip 如果出现如下异常: File , in <module> f ...

  6. 如何基于Jupyter notebook搭建Spark集群开发环境

    摘要:本文介绍如何基于Jupyter notebook搭建Spark集群开发环境. 本文分享自华为云社区<基于Jupyter Notebook 搭建Spark集群开发环境>,作者:apr鹏 ...

  7. delphi不同版本字符串类型的演化(要支持基于firemonkey的app调用,字符串最好使用olevariant类型)

    string,DELPHI2009以前的版本string=ansistring,一个字符占一个字节,DELPHI2009及以上版本string=unicodestring,一个字符占二个字节. cha ...

  8. Centos7.2下Nginx配置SSL支持https访问(站点是基于.Net Core2.0开发的WebApi)

    准备工作 1.基于nginx部署好的站点(本文站点是基于.Net Core2.0开发的WebApi,有兴趣的同学可以跳http://www.cnblogs.com/GreedyL/p/7422796. ...

  9. [转]基于Starling移动项目开发准备工作

    最近自己趁业余时间做的flash小游戏已经开发得差不多了,准备再完善下ui及数值后,投放到国外flash游戏站.期间也萌生想法,想把游戏拓展到手机平台.这两天尝试了下,除去要接入ane接口的工作,小游 ...

随机推荐

  1. doc系统maven打包脚本

    chcp 65001@echo off title 打包神器,龙爷造. echo ============================= echo 姓名:Long echo 日期:2020-08- ...

  2. rosbag 初尝试

    overview ROS (Robot Operating System, 机器人操作系统) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件.它提供了硬件抽象.设备驱动.函数库.可视化工具. ...

  3. Dapper的基本使用 [转]

    Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的.也就是说实体类都要自己写.它没有复杂的配置文件,一个单文件就可 ...

  4. python使用笔记22--mock接口开发

    1.mock接口开发 mock是模拟一个接口的意思 为了不阻止测试,开发一个接口,返回你想要的数据,模拟各种场景 需要安装第三方模块flask,flask是web轻量级开发框架 1.1 flask p ...

  5. [005] - JavaSE面试题(五):String类

    第一期:Java面试 - 100题,梳理各大网站优秀面试题.大家可以跟着我一起来刷刷Java理论知识 [005] - JavaSE面试题(五):String类 第1问:String.StringBuf ...

  6. vue如何动态加载本地图片

    大家好,我是前端队长Daotin,想要获取更多前端精彩内容,关注我(全网同名),解锁前端成长新姿势. 以下正文: 今天遇到一个在vue文件中引入本地图片的问题,于是有了这篇文章. 通常,我们的一个im ...

  7. React组件三大属性之 props

    React组件三大属性之 props 理解1) 每个组件对象都会有props(properties的简写)属性2) 组件标签的所有属性都保存在props中 作用1) 通过标签属性从组件外向组件内传递变 ...

  8. java 8内置的四大核心函数式接口

    Consumer<T> : 消费性接口 返回值  void accept(T t); public void happy(double money, Consumer<Double& ...

  9. 数据库开发之ETL概念

    原文链接:https://blog.csdn.net/jianzhang11/article/details/104240047/ ETL基础概念 - 背景随着企业的发展,各业务线.产品线.部门都会承 ...

  10. 第七篇 -- 常用界面组件的使用(QSlider和QProgressBar)

    首先画个图 ui_proBar.py # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'ui_ ...