前言
准备上GCP训练,用vps先做个个小测试,在上面试试能不能用anaconda+vim直接打造一个IDE,就不用jupyter了。
主机:debian 10
安装anaconda
- wget 下载
wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh
bash Anaconda3-2019.10-Linux-x86_64.sh
创建环境
conda create --name=tf python=3.6
tf是我的设定,可以修改conda activate tf
进入环境
安装各种包
pip install numpy==1.16
pip install tensorflow==1.8
卸载vim
apt-get remove --purge vim
apt-get clean
源码编译
git clone https://github.com/vim/vim.git
cd vim
./configure --with-features=huge \
> --enable-multibyte \
> --enable-python3interp=yes \
> --with-python3-condfig-dir=~/anaconda3/envs/tf/lib/python3.6/config-3.6m-x86_64-linux-gnu \
> --prefix=/usr/local
make
make install
–with-python3-condfig-dir实际是废弃参数,只要enale-python3interp就行。
vim --version
或者
vim --version | grep python3
检测是否支持python特性扩展
调试以及解决方案
- 遇到
configure: error: no acceptable C compiler found in $PATH
apt-get install build-essential
-遇到fatal error: bytecode stream generated with LTO version 7.1 instead of the expected 6.0
anaconda提供的编译器,原来的编译器版本太旧,用新的更好,并且不用解决不兼容问题。
conda install gxx_linux-64
- 找anaconda 虚拟环境的python 配置路径还费了我不少事,Linux各种路径很烦的,一搞错就很麻烦,所以我找了很久才找到和网上教程给出的路径相同的路径
先激活环境
which python
找到路径
然后我困扰的地方就是这个目录下直接ls 是看不到python文件夹的,但直接cd python 就可以进去了
记录下上面那个文件名(config-3.6m-x86_64-linux-gnu )就行了,
但实际上不需这个这个也行,因为执行configure 时,会显示这个配置项已是废弃项了,现在可以智能找到路径了。
vim 插件安装
关键的来了,YCM插件号称最难装的插件,我之前在wsl上装得差点吐血,这次我多方打探,做好万全准备,打算一举拿下。只要能配置好vim 的自动补齐,效率就能提上来了。首先是找到了这个issue,看了一大堆吓尿了,作者先是说不支持,然后一大帮人在下面给出解决方案,感觉没一个靠谱的,结果开发者最后说关闭该issue 了,并在README给出了解决方案(撒花~)。
接着就赶紧去看README,总体来说就是有两种解决方案,一是在project下建立额外的配置文件,二是在~目录建立全局配置文件
一看就很操蛋,虽然我都知道是什么玩意,但是感觉还是jupyter舒服。但是开端口感觉又很不爽,如果能配合上docker应该比jupyter快。
直接保存镜像,上服务器直接拉镜像,但我不是很熟Docker,所以没办法- _ -’’ 。
- 先是安装Vundle
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
- 下载YCM
cd ~/.vim/bundle/
git clone https://github.com/ycm-core/YouCompleteMe.git
cd YouCompleteMe/
git submodule update --init --recursive
apt-get install python-dev libxml2-dev libxslt-dev
apt-get install python3-dev
/usr/bin/python3 install.py --clang-completer
这里用系统自带的python安装如果是用了anaconda根据readme上给出的指令,所以需要指明路径
我在编译时遇到了<x86_64-linux-gnu/python3.5m/pyconfig.h>no such flie 这个问题[1],用这条指令cp /usr/include/x86_64-linux-gnu/python3.7m/pyconfig.h /usr/include/python3.7m/
还有因为是vps小鸡,所以还有内存不够的问题。通过添加swap交换分区[2]解决。出现这个问题时编译卡在98%,有点哭笑不得,还好是内存问题 。
cd ~
free -m
mkdir /opt/images/
rm -rf /opt/images/swap
dd if=/dev/zero of=/opt/images/swap bs=1024 count=2048000
mkswap /opt/images/swap
swapon /opt/images/swap //用完关闭
结果图
3. 配置.vimrc文件
touch ~/.vimrc
- 编写.vimrc
set nocompatible
set encoding=utf-8
set splitbelow
set splitright
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
"
"ycm
set runtimepath+=~/.vim/bundle/YouCompleteMe
let g:ycm_python_interpreter_path = '~/anaconda3/envs/tf/lib/python3.6' 使用虚拟环境的解释器
let g:ycm_python_binary_path = '~/anaconda3/envs/tf/bin/python3.6' 自动补全虚拟环境的第三库
Plugin 'VundleVim/Vundle.vim'
call vundle#end()
filetype plugin indent on
- 效果图
总结
无聊死了,虽然YCM虽然很强大并且这波很顺利,但延迟实在吃不消,如果是物理机服务器还是很推荐的。我还是打算用jupyter搞了,不然写不完论文了。