spacemacs及python學習-坑之記錄


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM