首页 > 解决方案 > 如何在 cygwin 环境中安装 anaconda windows 的 python 解释器中启用 vim 样式的命令行编辑

问题描述

在 windows 7 桌面上安装了 anaconda 3.x windows 版本。我希望能够在从 Cygwin shell 开始的 python 解释器上进行 vim 样式的命令行编辑。

我知道 Cygwin 也带有 python,因为我需要使用最新版本的 python,所以我需要使用 windows 的 anaconda 发行版。

在 /usr/local/anaconda3 安装 anaconda windows 映像后,通过 在 Windows 上以 Vi 模式使用 Python shell 中的信息 并执行了这些步骤

export CONDA_BASE_DIR=/usr/local/anaconda3
export SHELLOPTS
set -o igncr
export CONDA_DEFAULT_ENV=root
export CONDA_PREFIX=${CONDA_BASE_DIR}

cp /usr/local/anaconda3/Lib/site-packages/pyreadline/configuration/startup.py
/cygdrive/c/Users/my_windows_login
cp /usr/local/anaconda3/Lib/site-packages/pyreadline/configuration/pyreadlinecon
fig.ini
/cygdrive/c/Users/my_windows_login
export PYTHONSTARTUPPATH=c:\\Users\\my_windows_login\\startup.py

编辑 /cygdrive/c/Users/my_windows_login/pyreadlineconfig.ini 以取消注释

set_mode("vi")
history_filename("~/.pythonhistory")
history_length(200)

启动 python 解释器为

$ conda activate base
(base) $ python -i $PYTHONSTARTUP

但是通过按 Esc-k 观察到,在解释器的命令行中未启用 vi 编辑模式。

如果没有 -i 标志,python windows 二进制文件将不会在 Cygwin 环境中以交互模式启动。由于解释器在使用 -i 标志启动时不会读取 $PYTHONSTARTUP 中的内容,因此在命令行中明确指定了 $PYTHONSTARTUP,以便可以在启动时执行 startup.py 脚本。

标签: python-3.xwindowsanacondacygwin

解决方案


已下载

winpty-0.4.3-cygwin-2.8.0-x64.tar.gz

https://github.com/rprichard/winpty/releases

并将其解压缩到 cygwin 安装的 /usr/local 中。

readline 配置需要在 cygwin 的 $HOME 中,而不是 c:\users\<my_windows_login>

$ cp /usr/local/anaconda3/Lib/site-packages/pyreadline/configuration/startup.py $HOME
$ cp /usr/local/anaconda3/Lib/site-packages/pyreadline/configuration/pyreadlineconfig.ini $HOME

通过上述设置,当我运行 anaconda python 时

$ PATH=/usr/local/anaconda3/Library/bin:$PATH winpty /usr/local/anaconda3/python

vi 风格的命令行编辑工作正常。


推荐阅读