python-logo-master-v3-TM

pipでもpip3でもparamikoが入らなかった

環境は以下の通り
Raspberry Pi Zero

cat /etc/debian_version
#9.8

Command “python setup.py egg_info” failed with error code 1 in ...

というようなエラーが出ていた。
調べてみるとsetuptoolsをアップグレードするというような記事が出てきた。

それらをやってもだめだったため、githubからparamikoのソースコードを探し出し、cloneの後に直接インストールを試みた。
pipを介さずインストールするのは依存関係が壊れる可能性があるので、もちろんバックアップは取ってからのこと。

すると、libffiというライブラリが不足していてインストールに失敗していることがわかった。

そこで

pip3 install libffi

でlibffiをインストールしたあと

pip3 install paramiko

で無事paramikoのインストールができた。




今年の末にyahooブログがサービスを終了するにともなって、そのブログをwordpressに移行したいという依頼があった。
その中で、インポート用のテキストファイルから画像ファイルのリスト化をする処理の部分でawkを使ったところ、一行に2つ以上のimgタグとsrcが存在した場合、上手く要素を取得できないという問題に行き当たった。

こういう状態↓
dbf3ea701fd1719c9365a88c266f7709.png

私は最初、キャプチャーの位置を()でグルーピングして\1,\2などで取得するという方法しかわからなかった。
しかし、これでは当然、一行に3つ以上の要素がある場合マッチできない。

結局的に以下のコードでうまく行った。

awk 'BEGIN{FS="src=";}
{
	for(i=2;i<=NF;++i){
		if(match($i,/"[^"]*"/)){
			print substr($i,RSTART+1,RLENGTH-2);
		}
	}
}' ./source.txt

フィールドセパレーターを"src="に設定してあげることで、一行はimgタグのsrcで分割される。
iの初期値が2から始まっているのは、awkのカウントは0オリジンではなく、1オリジンであり、なおかつ"src="で区切られたフィールドの2つ目からマッチの試行を行いたいため。
あとは行中のマッチ位置のインデックスをRSTARTとRLENGTHで取得し、substr関数で切り抜く。




nvimでpythonを書いている途中、コメントアウトした文字が列の頭に来ると \<\< \>\> でインデントを動かせないことに気付いた。
プラグインが悪さをしているのかと思い、その時使っているすべてのプラグインをOFFにしても、やはり列頭に張り付いたコメント行が動かせない。

結論としては、.vimrc内の、

set smartindent

をOFFにして、

set autoindent

を設定してやることで治った。

autoindentよりもsmartindentのほうがc言語を扱う際には賢いらしいが、現状autoindentで不便はないのでこちらを使うことにする。

indent - Vim日本語ドキュメント