spacemacs及python学习-坑之记录
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spacemacs及python学习-坑之记录相关的知识,希望对你有一定的参考价值。
Table of Contents
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 [[email protected]]socks-server[:port]] [-T proxy-server[:port]] [-c telnet-proxy-command] host port
表示配置正确。
- 建立 socks5proxywrapper 文件
#!/bin/sh
connect -S 127.0.0.1:54931 "[email protected]"
- 配置 git 修改你的home目录下的.gitconfig文件,如果没有请新建一个
[core] gitproxy = ~/socks5proxywrapper
或者
export GIT_PROXY_COMMAND="~/socks5proxywrapper"
- SSH 协议的配置
- 建立 ~/soks5proxyssh 文件
#!/bin/sh
ssh -o ProxyCommand="~/socks5proxywrapper %h %p" "[email protected]"
- 配置 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 "[email protected]"
- 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