SpaceVim + Anaconda + vimspector 实现python调试

前言

最近电脑出了问题,懒得修了直接重装了Ubuntu,所以环境就要从头开始配。写这篇文章主要是为了以后再重装系统的时候,不用这么焦头烂额的重新配环境。下面我们开始,先贴出环境。

 vim 8.2
 python 3.8.8 (Anaconda)
 Ubuntu  20.04.1

此处注意笔者的Python是Anaconda自带的,Anaconda和vim配合好像会出现bug,后文会提到,所以说不建议使用Anacoda来配置Vim。

安装vim

这里介绍如何安装vim8.2,因为vimspector要求的vim版本要不低于8.2,Ubuntu自带的vim版本为8.1,所以需要手动安装。

下载vim

$ git clone https://github.com/vim/vim.git

进行配置

$ cd vim
$ ./configure --enable-multibyte --enable-python3interp=yes --with-python3-config-dir=/home/lqz/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu
$ make
$ sudo make install

我不小心将当时的./configure配置删除了,所以配置命令是凭回忆写的,在这里贴出./configure文件的配置参数意义


--with-features:支持最大特性
--enable-multibyte:打开中文输入的支持
--enable-rubyinterp:打开对ruby编写的插件的支持
--enable-pythoninterp:打开对python编写的插件的支持
--with-python-config-dir: 指定python路径
--enable-python3interp:打开对python3编写的插件的支持
--with-python-config-dir: 指定python3路径
--enable-perlinterp:打开对perl编写的插件的支持
--enable-luainterp:打开对lua编写的插件的支持
--enable-gui=gtk2:gtk2支持,也可以使用gnome,表示生成gvim
--enable-cscope:打开对cscope的支持
--prefix:指定将要安装到的路径(自行创建)

此处配置及说明参考CentOS编译安装vim8并支持python3

问题解决

不出意外的话,使用Anaconda的朋友应该会遇到一个fatal error:

lto1: fatal error: bytecode stream generated with LTO version 6.2 instead of the expected 6.0

一开始去百度这个问题,让降级gcc,尝试了gcc7、8、9都还是在报错,而且上面的版本号会变化,错误格式是不变的。两个version始终对不上。然后去stackoverflow上,让禁用lto,使用选项-fno-lto,还是根本不起作用。走投无路谷歌去了,然后在Anaconda的Github中issue#6619发现了和我同样的问题,这个应该算是Anaconda的一个隐藏bug。具体链接贴在这里 Possible problem with LTO on Anaconda 5.0 #6619 ,外国人还是非常认真,每个问题都仔细回复,篇幅和精力有限,仅在此贴出解决方案。
导致出现这个问题的原因是Anaconda使用自己的编译器,而不是我们通过sudo apt install gcc得到的内置gcc,安装对应的编译器命令为

$ conda install gxx_linux-64

随后修改vim/src/auto/config.mk 中的LDFLAGS变量

LDFLAGS ?=
LDFLAGS += -L/usr/local/lib

然后使用

$ make distclean

命令清空之前的配置,重新运行./configure以及make即可。
睡了一觉之后印象不是很深,还是要多记录,解决方案是
解决方案
顺便贴出我的configure.mk文件LDFLAGS部分
LDFLAGS变量

确认安装成功

此时运行

$ vim --version

查看vim版本发现已经是8.2版本,并且支持python3。
vim结果要注意的是,在设置./configure文件时,只能设置python3支持,python2的支持不能设置,vim只能支持编译一种python,有的教程中会同时配置两种,最后vim --version的结果就是+python/dyn +python3/dyn,dyn是dynamic的缩写,即动态支持,这种情况vim还是会报错的。

安装SpaceVim

根据SpaceVim官方中文文档中提供的下载安装命令安装即可。

$ curl -sLf https://spacevim.org/cn/install.sh | bash

随后运行vim可以看到已经变成了SpaceVim
spacevim

搭建python环境

打开~/.SpaceVim.d/init.toml文件,加入如下命令

[[layers]]
  name = "lang#python"

即完成了对python环境的支持。
至此其实python环境已经搭建完成,SpaceVim文档中有关于内置调试器的介绍,但是内置调试器有bug,只能显示第一行结果,这在其github上有人提了一个issue,但是并没有解决( Eval only shows first line #62 )。这对于我这种编程新手来说不是很方便,尤其是训练神经网络关键部分看不到就失去了调试的意义,所以便尝试使用vimspector。

安装vimspector

首先给出vimspector的项目地址,内容非常详尽。具体的配置以及使用在这里就不做枯燥的翻译工作了。
再给出一篇我第一次配置时参考过的博客Vim 最强调试插件:vimspector,帮了我很大的忙。
在这里将vimspector直接作为SpaceVim的插件安装,在init.toml文件中加入

[[custom_plugins]]
    repo = "puremourning/vimspector"
    merged = false

打开SpaceVim会看到插件已经完成安装。
此时启动debug程序还太早,因为缺少必要的.vimspector.json文件,为了检查我们是否配置有误,vimspector提供给我们测试程序,进入测试程序所在文件夹

$ cd /home/lqz/.cache/vimfiles/repos/github.com/puremourning/vimspector/support/test/python/simple_python

其中的main.py即为测试程序,.vimspector.json为配置文件。main.py内容执行

:call vimspector#Launch()

选择第五项run,就会启动调试器并输出结果
运行结果这样就意味着我们的环境配置成功,根据github上的提示进行具体的变量配置以及个性设置就ok了。

小tips

  1. 安装debugpy
    初次打开vimspector可能会提示没有debugpy,先尝试官方命令
:VimspectorInstall debugpy

我使用命令的时候一直提示和远程服务器失去连接,只要将它需要下载的v1.2.1zip自己下载到对应的文件夹中就ok了,网址以及目标文件夹报错信息中都有。

  1. 个性化设置
    官网中设置HUMAN MODE无法直接在init.toml文件中设置,参考SpaceVim中的启动函数章节,在bootstrap_before函数中添加let g:vimspector_enable_mappings = 'HUMAN‘即可完成映射。

最后

笔者也是新研究生,研究生还在捣鼓入门的东西好像菜了点,第一次写博客好多关键点感觉没有写出来,但是由于没有记录,也只有这些了,希望能给和我遇到同样问题的朋友提供一点帮助。最后还是想说,谷歌yyds!欢迎给我提出建议~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyCharm是一种集成开发环境(IDE),可以用于Python开发。Anaconda是一个Python发行版,包含了许多常用的科学计算库和工具。Python是一种通用的编程语言,常用于开发各种应用程序。OpenCV是一个开源的计算机视觉库,用于处理图像和视频数据。PyQt是Python的一个GUI库,用于创建图形用户界面。在上述引用中,提到了使用PyCharm和Anaconda来配置和管理Python、OpenCV和PyQt的开发环境。通过安装Anaconda,我们可以方便地使用其中的Python版本、OpenCV和PyQt库,而无需单独下载和配置它们。同时,PyCharm也可以与Anaconda集成,使得开发过程更加便捷。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [2020新版pycharm+anaconda+python+opencv+qt环境配置](https://download.csdn.net/download/weixin_38700430/13749822)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatgptT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [pycharm+anaconda+opencv+pyqt环境配置](https://blog.csdn.net/zong596568821xp/article/details/118028155)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatgptT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值