Atomでpythonしてたらエラーが出る Please fix pylama path or install latest version.


Atomでpythonしてたらこんなエラーができました。

Please fix pylama path or install latest version.

何か文字を打ったりすると都度、このメッセージが画面右上にポップアップが行事されて非常にうっとおしい。

どうやら「pylama」に問題があるらしい。
直す か 最新版にして! と怒られています。

背景

私、実は先日からAtomを使い始めたばかりでして、利用しているpythonの入門書に記載していた通りに色々設定を進めていました。

[前提知識の確認]
Atom:テキストエディタ。windowsでいうメモ帳。ただしAtomはプログラムを書くために作られたもの。プログラムを書く際に役立つ便利な機能がたくさんある。

python:プログラミング言語の1つ。とても簡潔に作られているらしい。シンプルイズベストの考えで作られた言語とのこと。

linter:構文チェック機能。プログラムを書いているとどうしても間違えることがある。この機能があるとプログラムの構文が間違っていれば教えてくれる。Wordでいうスペルチェック機能に該当する。

Atomではそういった便利機能をパッケージとして自分が必要なもの選んでインストールすることができる。
そこで私は書籍にかいてあった「linter-python」というパッケージをインストールした。
するとAtomがこう言う。「linter-python使いたいならlinterも入れないとだめだよ!(意訳)」

そこで私は言われるがままにインストールをした。(インストールボタンが表示されているので、簡単にパッケージをインストールできる。)

linter使いたいなら○○を入れないとだめだよ!と、次から次へとパッケージをインストールさせようとするAtom。
その時の私は言われるがままにどんなものかもわからないまま、インストールボタンを押していった。


ーー
ーーー
そして、今日。最初に書いたエラーが出るようになってしまったのです。

pylamaとは?

とりあえずパッケージをインストール画面でpylamaで検索すると、トップにlinter-pylamaが表示されます。

恐らくエラーが言っていたのはこれのことだと思われました。

※10/23諸事情により画像削除

とりあえずインストール。

でも解決しない。次のエラーがでてくる

Installing “[email protected]” failed.Hide output…
events.js:183

throw er; // Unhandled 'error' event
^

Error: ENOENT: no such file or directory, open 'C:\Users\XXX\.atom\packages\linter-pylama\node_modul

インストールできていないらしい。
その後何度も試しましたが、変化はありませんでした。

ググった 同じエラー出た人がいた

どうしようもないので、ググりました。

すると同じエラーが出た人がGitHubで質問をしていました!
(https://github.com/AtomLinter/linter-pylama/issues/78)

去年の質問ということもあり、バージョンの違いはありましたが非常に似ている状況です。

中には私も!俺も!と似たようなトラブルにあった人たちが集まっています。(笑)

コメントを見ていると、どうやらlinter-pythonlinter-pylamaは非常に似ていて、競合する可能性が高いから、どちらか1つだけにしたら良いらしい。

(でもAtomが両方入れるように勧めてきたんだけどな…)

結論(?)

結果的に余計なパッケージをアンインストールしました。
これで私の場合はエラーが表示されなくなりました。

細かく言うと、一旦linter-pythonlinter-pylamaを含めた自分で後入れしたすべてのパッケージをアンインストール。
次にlinter-pythonのみを再インストールしました。

これによってエラーはなくなりました。

そのため根本的な原因ははっきりとしていません。

今回はとりあえず再インストールしておこうの考えでうまくいったというところです。

本当はどのパッケージが原因なのかはっきりとさせたかったですが‥。
(検証という意味では1つのパッケージをアンインストールごとに改善があったかを確認するべきでした。)

ただ個人的には恐らくですが私の場合も紹介したGitHubのコメントと同じで例の2つのパッケージが競合していたのではないかなと思います。
(エンジニアとしてはこれではだめですね。)

何か間違ている点などがあればコメントよろしくお願いします。

今度エラーが起きた時はしっかりと状況確認をしたいと思います。

参考になれば幸いです。