neovimを使っていて、:HealthCheckを実行時、python3はOKなのにpython2はエラーが出ていた。
python3とpython2、どちらもOKじゃないと問題がないかはわからなかったが、とりあえずエラーが出ている状態というのは気持ちがいいものではないので解決した

環境:
os:Linux Ubuntu18.04LTS
python2:2.7.16
python3:3.7.2

このサーバーではpythonのバージョン管理にpyenvを使っている。

記事執筆時に新しいバージョンだったpython2とpython3を導入している
それぞれ環境のところに書いてあるpythonをpyenvを使ってインストールをした。

その後、~/.config/nvim/init.vimに下記の記述を追加


let g:python_host_prog = expand('~/.pyenv/versions/2.7.16/bin/python2')
let g:python3_host_prog = expand('~/.pyenv/versions/3.7.2/bin/python3')

これで:CheckHealthをするとエラーは消えた

バージョンを直で書くのはよくないとかいう声も聞こえてきそうだけれど、とりあえずはこれでよし

(本当の問題は別のプラグインがまともに動いてくれていなくて、これがpython2がうまく動かないことに起因しているのかを確かめたかったのです)

下記記事を参考にさせていただきました。ありがとうございます。

init.nvim にpython のpath を指定してneovim の起動速度を早くする - Qiita




巨大なデータファイルの数行に一行がほしいということがあります。

たとえば、1分おきに記録されている元データがあるけど、実際には1時間に一回のデータが見られればいいという場合、60行につき1行のデータがとれれば事足りるという具合です。


result = ""

idx = 0
File.open('./src.csv', 'r') do |f|
    f.each_slice(10000) do |chunk|
        result += chunk[0].to_s
        puts idx	#check progress
        idx += 1
    end
end

File.open("./output.csv", 'w') do |f|
    f.puts result
end

肝は io.each_slice(n)メソッドを使うことです。

もともとのsrc.csvは1億2千万行を保持するファイルですが、each_slice(10000)を使うことによって、1万件のデータをひとかたまり(chunk)として取り出し、その1行目をresultに追記していくことで1万行につき一行を取り出すということをやっています。

この方法だと、メモリの使用量も全行を読み出すのに比べてずいぶん節約できているようでした。

スクリプトを回して10秒ちょっとくらいで無事、1万2千件のデータがoutput.csvに保存されました。




neovimでコーディングしようと思ったところ、deinのneosnippetの更新がうまくいかないことに気づいた。

設定ファイルを見てみるも、特に異常が見当たらない

んー?と思って

neovim内で

:UpdateRemotePlugins

を実行してみる。

動かない、どころか、neovim起動時にダラダラとエラーを吐くようにまでなってしまったw

これからコード書こうと思ったのにー!うわああああ/(^o^)\オワタ

と思いつつも、冷静に何が悪いのかを推察してみる。

ひょっとしてdeinの設定ファイル見てる最中にどっかいじったのかなー、だとしたらこれバックアップ取ってないんですけどー!うわああああdein入れ直し\(^o^)/オワタ

ととても冷静と言える状態ではなかったが、

deoplete.nvimが効かなくなった時の手元できる対処法

というサイトを発見したので、まずはneovimに入って
:CheckHealth

をしてみると、どうやらpython3のproviderがエラーとなっている様子

ほうほう、なにかが変わってしまったのだろう。

と思いつつpython3のneovimの更新をかけてみる

pip install neovim

その後、もういちどCheckHealthをかけるとエラーが消えてる!やったー!

と思ったけどまだ、まともには動かない。

その後、

:call dein#update()

をかけると動くようになった。

よかったーと思うとともに、これからdeinの設定ファイルのバックアップを可及的速やかに取ります。

上記サイトの管理人さんありがとうございました