AtomでPythonを開発環境構築時に起きる問題、まとめて解決



自分の環境ではPythonを生で入れたのではなくAnaconda経由でインストールしています。OSはWin10。

今までspyderを使っていたのですが、文字列の"検索→置き換え"が出来ないとかいう謎の仕様などに不満が爆発し、「ちょっとAtomに切り替えてみるか」と今回の環境構築に至りました。

ここまでが前提です。

今回小難しい解説は抜きで、メモ書き程度にAtomでPythonの開発環境構築しようとするとつまづきやすい箇所をまとめて解決。

そもそもAtomでPythonが実行できない

基本的に生でPythonを生でインストールした場合はインストーラにPathを追加するというオプションが存在するようですが、Anacondaでのインストールの場合はオプションがそもそも存在しません。多分。

(もしかしたらあったかもしれないけど、記憶にない。あれば流石にチェック入れてると思うんですよね)

かくして、僕の環境では、コマンドプロンプトに「Python」と打ち込んでももちろんPyhtonが立ち上がらない状況でした。
立ち上がらないどころか、何故か「Microsoft Store」のPyhtonの検索結果に飛ぶという謎の仕様に見舞われちょっと混乱しました(笑)

AtomでPythonが実行できない時の解決策

勿論Pathを通すと使えるようになります。

通すPathは以下。

Atomパッケージ「ide-python」が上手く動かない

現象的にはこんな感じ。

ide-pythonエラーメッセージ

.pyのファイルを開くとAtomエディタ右上にこのエラーメッセージが表示され続けます。もちろんパッケージ[ide-python]は動いていません。

Atomパッケージ「ide-python」が上手く動かない問題の解決策

解決の前提

まず、前述したAtomでPythonが実行できない時の解決策のPathがきっちり通っている前提です。

ide-python動かすまでの手順①

python-lanfuage-serverをインストールしろ」と言われています。

ご丁寧にコマンド書いてくれているのですが、これコピペしてコマンドプロンプトに入れても通りません。

Windowsのコマンドプロンプトの話ですね。

ide-python動かすまでの手順②

上記操作が上手くいっていればこの時点で画像の警告は消えます。

それでもまだエディタ上変化がなく、動いてるのか分からない感じです。

上記の手順①のタイミングでこんな警告が表示されていたら要注意です。

警告

「pyls.exeがインストールされてるけど、Path通ってませんで」って警告のようです。

ってことで、Pathを通します。

ide-python動かすまでの手順③

ここまでやってもエディタ上で何も変化がない場合、以下の二つのコマンドで解決します。

Atomパッケージを直接コマンドプロンプトからインストールする方法で、そのまま入力すればOKです。

ide-python動作画面

最終的にこんな感じでうっとおしいくらい下線引かれまくって、注意されまくるようになります。

Atomパッケージ「script」で日本語が文字化けする

Atomのパッケージに「script」という、コードを簡易実行して、コンソールに表示するものが存在します。

上記コードを実行してみたところ、

script実行結果の文字化け

英語での表示はうまくいきますが、日本語が思いっきり文字化けします。

Atomパッケージ「script」の文字化けの解決策

「file」 → 「init script」 を開く

init script ファイル

最下行に以下の一行を追加

文字化け改善後

治った。

絶対に存在するモジュールのインポートに失敗する

Pythonを生インストールしていない環境で起こりがちの問題です。
AnacondaでPythonをインストールしている場合に起こりがちと言い換えてもいいかもしれません。

spyder経由でモジュールインポート時には問題なく通るのに、Atom上のscriptからコード実行してモジュールをインポートしようとすると、

となり、インポートに失敗します。

ちなみにAnacondaのbaseを経由しないインポートはAtomに限らず全て失敗します。
ですので、コマンドプロンプトやShellでPythonを起動して対話式でインポートを試みた場合も同じくImportErrorが発生します。

Anaconda Promptからインポートを試みた場合は問題なく通る点から、Pathの問題であることは明白です。

Atom上からモジュールのインポートに失敗する問題の解決策

単純にWindowsのシステム環境変数にPathを通すと解決します。
と、言っても、モジュールの格納先ディレクトリをPathに通しても解決しません

Pathを通す場所は以下。

mkl~.dll というファイル群が必要なようです。