質問: ### 前提・実現したいこと atom-runnerで、任意のディレクトリのファイルを同じディレクトリで実行させたいですが、なぜか出来ません。 jupyter lab + hydrogenでは、上記のことが出来ており問題ありませんが、画像出力など考えて、atom-runnerでも動作できるようにしたいです。 プログラミング初心者です。最終的にはpythonで、matlabのように数値計算を回す予定です。 ### 発生している問題・エラーメッセージ C:\Users\ユーザー名\Desktop\Python test\test.py このファイルに、下記のスクリプトを書きました。 ``` import os print(os.getcwd()) ``` このファイルを、エクスプローラ上で右クリック→プログラムから開く、でatom上で開き、alt+rで実行。 出力結果は、 C:\Windows\system32 で、カレントディレクトリではありません。 jupyter lab + hydrogenでは、 C:\Users\j47965\Desktop\Python test であり、カレントディレクトリ。 ちなみに、これがもしかすると肝かもしれませんが、 Atomのプロジェクトから同ファイルを開き実行すると、 C:\Users\j47965\Desktop\Python test とカレントディレクトリがちゃんと表示されます。 ### 該当のソースコード ``` import os print(os.getcwd()) ``` ### 試したこと **ユーザー・システム環境変数にパスを通すこと** C:\Users\ユーザー名\AppData\Local\Programs\Python\Python38\ C:\Users\ユーザー名\AppData\Local\Programs\Python\Python38\Scripts\ **config.cson編集** runner: scopes: python: "Python" ちなみに、ここをPython3とすると、 Python was not found but can be installed from the Microsoft Store: https://go.microsoft.com/fwlink?linkID=2082640 というエラーが出ます。 ### 補足情報(FW/ツールのバージョンなど) Win10 64bit Atom + atom-runner Python 3.8.2 64bit
回答: 自分で端末などから立ち上げた場合はともかく、エディタのプラグインやツールの類がどのようにしてpythonを起動するかはそれぞれ異なります。一定のカレントディレクトリになる保証はありません。 明示的に特定のディレクトリをカレントディレクトリに設定したいのであれば、os.chdirを使うと言った手があります。また、.pyファイルのある場所の絶対パスも取ろうと思えば取れるので、組み合わせれば起動時のカレントディレクトリに依存しないコードが書けます。