spacemacs及python學習-坑之記錄
Table of Contents
- 1. spacemacs
- 1.1. .spacemacs 文件
- 1.2. 項目文件
- 1.3. open shell windows
- 1.4. emacs基礎
- 1.4.1. 自動刪除沒有用到的package
- 1.4.2. 自動縮進 indent-region
- 1.4.3. dired-mode
- 1.5. 配置emacs使用本地elpa庫
- 1.5.1. 方法1
- 1.5.2. 方法2
- 1.6. emacs中無法啟動pythonshell
- 2. python
- 2.1. builtin fuction
- 2.2. 查看python內置函數的方法
- 2.3. a test is not a unit test if :
- 3. 網絡問題
- 3.1. 使用lantern和設置git代理解決 gitgub clone 緩慢的問題。
- 3.1.1. lantern
- 3.1.2. STARTED GIT代理
- 3.1. 使用lantern和設置git代理解決 gitgub clone 緩慢的問題。
- 4. rsync同步elpa庫
- 4.1. 下載windows 客戶端
- 4.2. 添加客戶端bin目錄到環境變量中
- 4.3. 同步elpa庫
- 4.4. 添加自動同步任務
1 spacemacs
1.1 .spacemacs 文件
1.2 項目文件
在項目根目錄下新建一個空文件:
.projectile
1.3 open shell windows
hM-x eshell M-x shell
1.4 emacs基礎
1.4.1 自動刪除沒有用到的package
M-x package-autoremove
1.4.2 自動縮進 indent-region
C-M-\ 自動縮進所選的代碼或者縮進所有代碼
1.4.3 dired-mode
+: 創建一個目錄 C-x C-f :新增一個文件 g: 刷新目錄 c: 復制文件 d:標記刪除文件 x: 執行所有標記
1.5 配置emacs使用本地elpa庫
在同步了elpa庫到本地後,想要在讓emacs使用本地的庫。
1.5.1 方法1
在.emacs.d/init.el開頭添加如下代碼
(require ‘package)
(setq package-enable-at-startup nil)
(setq package-archives ‘(("melpa" . "~/.emacs.d/mirror-elpa/melpa/")
("org" . "~/.emacs.d/mirror-elpa/org/")
("gnu" . "~/.emacs.d/mirror-elpa/gnu/")))
1.5.2 方法2
如果使用的是spacemacs,則在 defun dotspacemacs/user-init 函數內添加如下代碼 windows的下使用絕對路徑,格式是//?/盤符/文件夾 ,或者可以把鏡像放到你的C:\Users\<你的用戶名>\AppData\Roaming目錄下面然後可以使用 ~/elpa-mirror/melpa/ 這樣的路徑
(setq configuration-layer--elpa-archives
‘(("melpa-cn" . "//?/f:/elpa-mirror/melpa/")
("org-cn" . "//?/f:/elpa-mirror/org/")
("gnu-cn" . "//?/f:/elpa-mirror/gnu/")))
1.6 emacs中無法啟動pythonshell
每次啟動python shell都報錯
Unknown option: -- usage: c:\Users\xxxxx\AppData\Local\Programs\Python\Python36-32\python.exe [option] ... [-c cmd | -m mod | file | -] [arg] ... Try `python -h‘ for more information. Process Python exited abnormally with code 2
解決辦法,M-x customize-group,接著輸入python回車,然後找到python shell interpreter args。然後改成-i,左鍵state然後選save for future session. 如果是spacemacs,需要在.spacemacs文件中把參數寫到 dotspacemacs-configuration-layers的python變量裏。
(python :variables
python-test-runner ‘(nose pytest)
python-shell-interpreter-args "-i")
2 python
2.1 builtin fuction
2.2 查看python內置函數的方法
dir(__builtins__)
2.3 a test is not a unit test if :
- read or write from the filesystem
- read or write from the network
- read or write from a database
- cannot run tests in parallel
- test suite depends on a environment configuration
- the execution order of the tests is important to make all tests passes
- test is run not fast
3 網絡問題
3.1 使用lantern和設置git代理解決 gitgub clone 緩慢的問題。
3.1.1 lantern
首先,你需要下載lantern,這是鏈接
3.1.2 STARTED GIT代理
Git 目前支持的三種協議 git://、ssh:// 和 http://,其代理配置各不相同:core.gitproxy 用於 git:// 協議,http.proxy 用於 http:// 協議,ssh:// 協議的代理需要配置 ssh 的 ProxyCommand 參數。對於所有的協議全部使用 SSH 隧道進行代理
- GIT 協議的配置
- lantern的代理端口:
http(s)代理服務器):127.0.0.1:54932 socket代理服務器:127.0.0.1:54931 如果不確定,雙擊lantern會打開一個web頁面,點擊【設置】》【高級設置】,會顯示lantern的代理配置。
- 下載connect工具
使用 https://bitbucket.org/gotoh/connect 工具進行代理的轉換,各發行版一般打包為 proxy-connect 或者 connect-proxy。打開上面的鏈接後,在頁面的左邊最下面點擊Downloads。點擊connect-1.104-win32-msvc.zip下載到本地。解壓文件,將文件connect.exe所在的目錄添加到環境變量的PATH中。打開CMD命令窗口,輸入connect回車。如果提示:
connect --- simple relaying command via proxy. Version 1.104 usage: C:\Program Files\Git\mingw64\bin\connect.exe [-dnhst45] [-p local-port] [-H proxy-server[:port]] [-S [user@]socks-server[:port]] [-T proxy-server[:port]] [-c telnet-proxy-command] host port
表示配置正確。
- 建立 socks5proxywrapper 文件
#!/bin/sh
connect -S 127.0.0.1:54931 "$@"
- 配置 git 修改你的home目錄下的.gitconfig文件,如果沒有請新建一個
[core] gitproxy = ~/socks5proxywrapper
或者
export GIT_PROXY_COMMAND="~/socks5proxywrapper"
- SSH 協議的配置
- 建立 ~/soks5proxyssh 文件
#!/bin/sh
ssh -o ProxyCommand="~/socks5proxywrapper %h %p" "$@"
- 配置 git 使用該 wrapper
export GIT_SSH="~/socks5proxyssh“
當然也可以直接配置 ~/.ssh/config 的 ProxyCommand
- HTTP 協議的配置
修改你的home目錄下的.gitconfig文件,如果沒有請新建一個
[http] #這裏是因為 Git 使用 libcurl 提供 http 支持 proxy = socks5://127.0.0.1:54931
- 所有協議全部使用 http 代理
在前一部分的基礎上, /path/to/socks5proxywrapper 文件改為
#!/bin/sh connect -H 192.168.1.100:8080 "$@"
- HTTP 協議配置
[http] proxy = http://127.0.0.1:54931
- 針對域名啟用代理
gitproxy 參數提供 * for * 結構,具體看 man git-config 的 core.gitproxy 部分。
4 rsync同步elpa庫
4.1 下載windows 客戶端
連接地址
4.2 添加客戶端bin目錄到環境變量中
- 將安裝包解壓到任意位置。
- 添加客戶端路徑到path變量中右鍵點擊計算機》屬性》高級系統設置》高級》環境變量
找到系統變量的PATH變量,點擊編輯按鈕。 windows10系統點擊新建,輸入客戶端的bin目錄絕對路徑(如:F:\rsync\bin),點擊確定。windows其他版本系統,將路徑添加到值的最後。
4.3 同步elpa庫
rsync -avzP –delete rsync://mirrors.tuna.tsinghua.edu.cn/elpa/ /cygdrive/f/elpa-mirror
-delete 選項,表示客戶端上的數據要與服務器端完全一致,如果 linuxsirhome目錄中有服務器上不存在的文件,則刪除。最終目的是讓linuxsirhome目錄上的數據完全與服務器上保持一致;用的時候要 小心點,最好不要把已經有重要數所據的目錄,當做本地更新目錄,否則會把你的數據全部刪除; /cygdrive/f/elpa-mirror 為同步到本地的目錄。配置文件中寫路徑時格式要轉換,例如我這裏把目錄放到f盤,則這麽寫/cygdrive/f/你的目錄
整個鏡像約占 1 GB,emacs-china rsync地址為: rsync://elpa.emacs-china.org/elpa/ 下遊 Tsinghua Mirrors 的 ELPA 鏡像 也提供了 Rsync 服務,地址是: rsync://mirrors.tuna.tsinghua.edu.cn/elpa/ 上遊 GNU ELPA 和 MELPA 提供了 Rsync 服務,其地址分別為: rsync://elpa.gnu.org/elpa/ rsync://melpa.org/packages/
4.4 添加自動同步任務
將同步命令添加到window的任務列表中,實現自動同步
- 將同步命令保存到一個以cmd結尾的文本文件中
- 在Window中添加任務計劃,不同的系統,操作有點不一樣 windows xp/Server 2003 : 開始->設置->控制面板->任務計劃->打開添加任務計劃->下一步 windows 7/Server 2008 : 開始-> 控制面板 -> 管理工具 -> 任務計劃 windows 10 在運行中輸入 任務計劃程序 打開任務計劃面板在常規中填寫任務名稱,在觸發器中設置同步間隔,在操作中指定要執行的文件。
Created: 2017-08-23 周三 08:08
spacemacs及python學習-坑之記錄