centos6 安装最新Vim8.2.3070,最实用vim插件遇到很多问题如:undefined symbol: PyFloat_Type

1 篇文章 0 订阅
1 篇文章 0 订阅

          最近想装一个vim来用,安装插件遇到很多,我折腾了一个周末一天多时间,很苦逼,遇到的问题 网上帖子都找遍了都没很好的解决问题。

          老系统centos6.x系列 python是老版本,导致最新的vim不支持ycm插件,需要先手动安装Python3,  装了无数个版本 (后面ycm插件由于遇到_socket.cpython-38-x86_64-linux-gnu.so: undefined symbol: PyFloat_Type错误,看到网上说的是与ycm无关 与vim 无关的误导 我怀疑python版本问题   装了多个版本还是爆那错,   后面确认 3.7系列 3.8系列 3.9系列 都可以正常使用。最后使用的Python3.9.5版本)

1、下载源码包:

 wget  https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz
 
 tar -zxvf Python-3.9.5.tgz
 
 cd Python-3.9.5

 安装所需包  不然会很多模块是装不上报错如 _uuid  _ctypes  _thinker 。。。

yum install -y gcc patch libffi-devel python-devel  zlib-devel bzip2-devel uuid-devel  ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

openssl很老 就要手动去安装openssl 目前最新 openssl-1.1.1k,

wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz

解压后安装:

./configure  --prefix=/usr/local/openssl

make

make install

mv /usr/bin/openssl /usr/bin/openssl.bak

mv /usr/include/openssl /usr/include/openssl.bak

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

ln -s /usr/local/openssl/include/openssl /usr/include/openssl

echo "/usr/local/openssl/lib" >> /etc/ld.so.conf

ldconfig -v


报错[openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory]

处理方法:


ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

ln -s  /usr/local/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1

检查版本: 

 [root@localhost Python-3.9.5]# openssl version
 OpenSSL 1.1.1k  25 Mar 2021

编译安装Python

./configure  --prefix=/usr/local/python39  --enable-shared  --with-openssl=/usr/local/openssl 
make -j4
make install

在make 完成后要去日志看看有啥模块没编译成功,要做相应的处理,不然后面会做很多无用的,注意在每次进行了更改后建议都要make distclean来清理一下 不然会被坑。

编译没毛病就是做指向了(已经安装了老版本的python3  可以 从/usr/bin里面移出   python3  pip3这两个文件 后建立连接)

ln -s /usr/local/python39/bin/python3.9 /usr/bin/python3

ln -s /usr/local/python39/bin/pip3 /usr/bin/pip3

执行下面为vim 插件准备

pip3 install typing

 重点复制 libpython3.9.so.1.0  到时编译vim出来的 不支持Python3

cp /usr/local/python39/lib/libpython3.9.so.1.0  /usr/lib/
cp /usr/local/python39/lib/libpython3.9.so.1.0  /usr/lib64/

 vim需要的模块环境

yum install ruby ruby-devel lua lua-devel luajit \
luajit-devel ctags git python python-devel \
tcl-devel perl perl-devel perl-ExtUtils-CBuilder \
perl-ExtUtils-Embed libX* ncurses-devel 

卸载vim老版本

注意不要用 yum -y remove vim 这个去卸载 到时会惹很多事来。

正确的方式

rpm -qa|grep vim|xargs rpm -ev --allmatches --nodeps
whereis vim|xargs rm -frv

获取最新vim 源码代码:

wget  https://hub.fastgit.org/vim/vim/archive/refs/tags/v8.2.3070.tar.gz

编译配置: 需要支持python3 

 比较新版本的vim  python支持 的编译配置有改变,不是网上很多那样的. with-python3-config-dir=....

./configure --prefix=/usr/local/vim  --with-features=huge --enable-multibyte  --enable-gui=gnome2 --enable-luainterp=yes --enable-mzschemeinterp --enable-perlinterp=yes  --enable-python3interp=yes --enable-tclinterp=yes --enable-rubyinterp=yes --enable-cscope --enable-terminal --enable-autoservername --enable-multibyte --enable-xim --enable-fontset --with-modified-by=clive --with-compiledby=clive  --with-python3-command=python3 

 执行完成要检查找到python3的模块没有,不然编译出来不支持python3 去日志里找有没有这些

假如忘记复制libpython3.9.so.1.0 到/usr/lib 下面 会提示没找到不到文件。

checking Python's install prefix... /usr/local/python39
checking Python's execution prefix... /usr/local/python39
checking Python's configuration directory... /usr/local/python39/lib/python3.9/config-3.9-x86_64-linux-gnu
checking Python3's dll name... libpython3.9.so.1.0

 编译

make -j4

make install

  检查有支持python3模块

root@localhost vim]# ./src/vim --version|grep python
+cmdline_hist      +langmap           -python            +visual
+cmdline_info      +libcall           +python3           +visualextra

看到python3前面有个+号表示支持python3了。

建议软件连接到 /usr/bin里

ln -s /usr/local/vim/bin/vim   /usr/bin/vim
ln -s /usr/local/vim/bin/vim   /usr/bin/vi

插件安装参考

https://github.com/ckelsel/vim-init

将项目克隆到你喜欢的目录内,比如 ~/.vim 内:

mkdir ~/.vim
cd ~/.vim
git clone https://github.com/ckelsel/vim-init.git
cp ~/.vim/vim-init/.vimrc ~

安装插件

然后打开Vim,按键盘上的 :号  在命令行运行PlugInstall 安装依赖插件。

但是由于网络原因的是很难装上的,速度很慢,通过我的研究,可以快速装上

进行改进 可以快速安装好插件 ,下载下面的文件解压去/root/.vim/vim-init/autoload
替换plug.vim文件,覆盖plug.vim文件

https://download.csdn.net/download/clive_hua/19869496

用改进后的plug.vim   

再执行 按键盘上的 :号  在命令行运行PlugInstall 可以快速安装好依赖插件。

手动安装YouCompleteMe

yum install cmake
cd ~/.vim/bundles
git clone https://gitee.com/zhuixixi/YouCompleteMe.git --depth=1
cd ~/.vim/bundles/YouCompleteMe
python3 install.py --clang-completer

安装插件需要的第三方工具

yum  install clang
yum install the_silver_searcher ctags

基本安装完成。 

中途遇到的问题很多,插件不进行修改很难装上,使用vim 跳出  undefined symbol: PyFloat_Type 这个问题到处看到的资料,说的与ycm 和python无关,实际上不是这样的  我编译安装多次python的多个版本也能正常,说的与能正常导入不出错就不会出现undefined symbol: PyFloat_Type,

import _ctypes

实际还是会跳出错误,后面经过摸索 需要重新编译按上面的vim  configure,后面才成功。整个过程搞了快两天。网上能找到的资料就那些 ,很多是很老的版本下的操作改个名字就来 导致浪费很多时间。写这篇文章供后面的人参考。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值