日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python scatter 简书_写给 Pythonist 的 Spacemacs 入门指北

發布時間:2025/3/15 python 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python scatter 简书_写给 Pythonist 的 Spacemacs 入门指北 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

最開始,使用 Sublime Text 編碼,后來用 Vim 混合 PyCharm 寫 Python。

前幾天,Github 上的 Spacemacs 已經成功的突破一萬 Star, 聽說幾個我非常佩服的 Pythoner(比如『Python Web 開發實戰』的作者董偉明) 也是非常喜歡 Spacemacs, 我就萌生了從 Vim 切換到 Spacemacs 的想法,說做就做。

注:本文所有內容基于 macOS 10.11, 軟件環境為 zsh , pyenv , python3.5.2 , node5.12.0. 其他類 Unix 平臺略作修改即可使用。至于 Windows 平臺,建議安裝 Ubuntu 虛擬機。本文也需要讀者具備基本的 VIM 基本常識和 Python 常識。

遷移到一個編輯器需要找到一些操作的 Emacs 替代操作。于是我安排文章結構如下:

[0x00. 基本軟件環境安裝](#0x00- 基本軟件環境安裝)

[0.1 zsh 與 ohmyzsh](#01-zsh- 與 -ohmyzsh)

[0.2 pyenv 與 pyenv virtualenv](#02-pyenv- 與 -pyenv-virtualenv)

[0.3 nvm 以及常用 npm 包](#03-nvm- 以及常用 -npm- 包)

[0.4 Spacemacs 安裝以及基本配置](#04-spacemacs- 安裝以及基本配置)

[0x01. 日常的編輯](#0x01- 日常的編輯)

[1.1 文件導航](#11- 文件導航)

[1.2 文件編輯](#12- 文件編輯)

[0x02. Python 編程](#0x02-python- 編程)

[2.1 代碼補全](#21- 代碼補全)

[2.2 代碼跳轉](#22- 代碼跳轉)

[2.3 pytest 測試](#23-pytest- 測試)

0x03. IPython Notebook

[3.1 IPython Notebook 基本配置](#31-ipython-notebook- 基本配置)

[0x04. 擴展](#0x04- 擴展)

本文只負責把讀者帶入Spacemacs的世界中,而不是涉及到Spacemacs的方方面面,所以此文為指北.而非詳細的指南(Guide).

0x00. 基本軟件環境安裝

0.1 zsh 與 ohmyzsh

brew install zsh

chsh -s /bin/zsh

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

0.2 pyenv 與 pyenv virtualenv

git clone https://github.com/yyuu/pyenv.git ~/.pyenv

git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc

echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc

echo 'eval "$(pyenv init -)"' >> ~/.zshrc

echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc

# 不喜寫兼容代碼,所有代碼均向 3.5+ 靠攏

v=3.5.2|wget http://mirrors.sohu.com/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/;pyenv install $v

v=3.6.0|wget http://mirrors.sohu.com/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/;pyenv install $v

v=2.7.9|wget http://mirrors.sohu.com/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/;pyenv install $v

# 設置 Global Python 為 2.7.9, 備注:盡量不要把 Py3 設置為全局,否則由于 Homebrew 本身有一些應用是依賴于 Py2 的,設置為Py2容易出現一些奇怪的問題。

pyenv global 2.7.9

pip install -i https://pypi.doubanio.com/simple requests

# 下面這個是用于安裝基本的代碼補全功能

pip install -i https://pypi.doubanio.com/simple --upgrade "jedi>=0.9.0" "json-rpc>=1.8.1" "service_factory>=0.1.5" flake8 pytest autoflake hy

pyenv virtualenv 3.5.2 py3-daily

pyenv activate py3-daily

pip install -i https://pypi.doubanio.com/simple requests

pip install -i https://pypi.doubanio.com/simple beatutifulsoup4

pip install -i https://pypi.doubanio.com/simple ipython[notebook]

pip install -i https://pypi.doubanio.com/simple jupyter

# 下面這個是用于安裝基本的代碼補全功能

pip install -i https://pypi.doubanio.com/simple --upgrade "jedi>=0.9.0" "json-rpc>=1.8.1" "service_factory>=0.1.5" flake8 pytest autoflake hy

pyenv deactivate

# pyenv uninstall py3-daily

0.3 nvm 以及常用 npm 包

# 安裝 nvm

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash

nvm install 5.12.0

echo '\n#alias for cnpm\nalias cnpm="npm --registry=https://registry.npm.taobao.org \

--cache=$HOME/.npm/.cache/cnpm \

--disturl=https://npm.taobao.org/dist \

--userconfig=$HOME/.cnpmrc"' >> ~/.zshrc && source ~/.zshrc

npm install -g vmd

npm install -g gitbook-cli

npm install -g hexo-cli

npm install -g tern

npm install -g js-beautify

npm install -g js-hint

0.4 Spacemacs 安裝以及基本配置

brew install ag

brew install grep

brew tap d12frosted/emacs-plus

brew install emacs-plus

# 安裝完畢之后,克隆我的配置 repo, 有一些基本的配置用于解決墻的問題。解決方案來自于子龍山人

git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d

mv ~/.spacemacs .spacemacs.bak

git clone https://github.com/twocucao/spacemacs.d.git ~/.spacemacs.d

# 輸入 emacs 進行初始化,如果你可以正常訪問 Github 的話時間在半小時之內。

emacs

安裝 Spacemacs 過程中畫面如下:

安裝 Spacemacs 過程中畫面

安裝前,Emacs 長這個樣子:

安裝前

安裝后,Emacs 長這個樣子:

安裝后.png

在正式進入,請牢牢記住下面幾個按鍵已經功能,以備不時之需

spc : 跳出命令面板

spc-spc : 跳出命令列表,可運行命令,也可以查找快捷鍵

spc-h-spc : 查找包的用途與定義

嗯,可以談下一話題了!

0x01. 日常的編輯

1.1 文件導航

(VIM 流)hjkloOaA zz

(VIM 流)查找 * /words

spc-f-j 開發 neotree

spc-tab 切換到上一個 buffer

spc-f-f 打開文件 spc-p-f fuzzfind 類似于 ctrlp spc-s-g-p grep 搜索項目 spc-s-a-p ag 搜索項目

搜索項目如圖 (spc-s-a-p ag 搜索項目):

按照關鍵字搜索項目

實在是方便至極

1.2 文件編輯

文件內容編輯

(VIM 流)u 與 c-r d c 等

有趣的是查找替換功能也是自帶預覽的。比如 :%s/foo/bar/g

查找替換預覽

文件本身編輯

在 dired mode 下:copy - C , delete - D, new folder - +

也可以 spc-f-t 在 neotree 下進行編輯

除去這些和 Vim 相似的文件編輯功能之外,甚至窗口管理都和 Vim 一致了,使用 c-w+hjkl 直接跳轉。

強烈建議在讀者抽空過一遍基本的 Vimtutor

1.3 Markdown Writing

spc-spc-markdown-generate-to 回車即可生成本文的 Toc(Table Of Content)

spc-b-i 打開 buffer 的 imenu(類似于 Vim 的 Tagbar 插件),enter 跳轉

搜索項目如圖 (spc-b-i 開啟 buffer imenu ,enter 跳轉):

IMenu

0x02. Python 編程

2.1 代碼補全

當你按照前面的所有配置走一圈下來,基本上就已經可以完美的進行補全了。

比如,當我編輯一個 py 文件的時候,

# 先激活虛擬環境

pyenv activate 3.5.2/envs/py3-daily

emacs py.py

如圖所示,因為 requests,numpy 這種第三方庫都可以完美補全,其他自然不在話下。

代碼補全

代碼補全還有另一個神器,就是可以內嵌 lisp 的 Snippet 模板 -- yasnippet, 由于模板功能基本上和其他編輯器相同,而使用 elisp 語言進行編寫動態 Snippet 模板則需要會 elisp, 這以后有機會再學學。

2.2 代碼跳轉

文件代碼跳轉 spc-spc-helm-imenu 查看文件結構

文件跳轉 在 normal-mode 下,gd 即可跳轉到函數定義上,但是不能跨文件跳轉。

單文件使用 helm_imenu 進行瀏覽

使用 ag 進行代碼搜索

2.3 pytest 測試

spc-m-s-py3-daily enter 選擇 py3-daily 虛擬環境

spc-spc-pytest-all enter 即可運行所有 pytest 測試。

測試過程:

運行測試失敗,運行測試失敗,使用 c-w-j 跳轉到下面窗口,對紅色標記處 enter, 即可跳轉到出錯文件行。

pytest 運行測試失敗

修正運行測試成功,如圖:

pytest 運行測試成功

0x03. IPython Notebook

通常情況下我使用 IPython Notebook 都是在 Web 端,因為是 Web 端,實際上大量的 Dom 渲染對瀏覽器的渲染速度還是有一定的影響的,我還是比較喜歡客戶端,因為客戶端的快捷鍵可以定制,而 Web 端的快捷鍵實在是相當的不方便。

是不是 IPython Notebook 的 web 端沒有好處呢?有的,比如我可以借用外部的 JS 可視化圖表對 js 進行可視化呀。

但,如果不需要 js 功能的話,還是用客戶端舒服一些。

3.1 IPython Notebook 基本配置

spacemacs 貌似只支持密碼訪問 IPython Notebook, 那么我們就生成密碼。

# 首先激活 py3-daily 環境

python -c "from notebook.auth import passwd;print(passwd())" | pbcopy

# 恩,于是剪切板上就有如下的字符串

sha1:9bf4c48a6b83:26bc24a78a1e4aea7baa36874f5e86bafac0dbb9

# 打開 config 文件取消注釋并修改 c.NotebookApp.password

vim ~/.jupyter/jupyter_notebook_config.py

c.NotebookApp.password = 'sha1:35543659622f:f9a78f0b20132f3e04aa1d4ed4060f9fd9eb7663'

3.2 Emacs IPython Notebook

# 首先在終端打開 IPython Notebook

ipython notebook

接著打開 emacs, 輸入 spc-a-i-n, 默認端口,然后輸入密碼即可。首次登陸后還需要在輸入一次 spc-a-i-n 即可看到 IPython Notebook 的主界面。

IPYNB 的主界面

光標移到 [New Notebook] 鍵擊 enter 新建 IPython Notebook.

輸入如下代碼:

# The %... is an iPython thing, and is not part of the Python language.

# In this case we're just telling the plotting library to draw things on

# the notebook, instead of on a separate window.

%matplotlib inline

# See all the "as ..." contructs? They're just aliasing the package names.

# That way we can call methods like plt.plot() instead of matplotlib.pyplot.plot().

import numpy as np

import scipy as sp

import matplotlib as mpl

import matplotlib.cm as cm

import matplotlib.pyplot as plt

import pandas as pd

import time

pd.set_option('display.width', 1000)

pd.set_option('display.max_columns', 100)

pd.set_option('display.notebook_repr_html', True)

import seaborn as sns

sns.set_style("darkgrid")

sns.set_context("poster")

sns.set()

# Load the example flights dataset and conver to long-form

flights_long = sns.load_dataset("flights")

flights = flights_long.pivot("month", "year", "passengers")

# Draw a heatmap with the numeric values in each cell

sns.heatmap(flights, annot=True, fmt="d", linewidths=.5)

shift+enter , 咣

熱力圖就出來了

熱力圖

0x04. 擴展

看完上文,就可以深入文檔進行探索了。

ChangeLog:

2017-01-15 18:53:45 重修文字

2017-01-16 12:49:19 潤飾文字,增加可讀性,首發簡書。

總結

以上是生活随笔為你收集整理的python scatter 简书_写给 Pythonist 的 Spacemacs 入门指北的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。