VSCodeでOnedrive上のpythonファイルを実行したときに、『can’t open file : [Errno 2] No such file or directory』エラーになるときの暫定対処→ジャンクションで別フォルダからアクセスする

VSCodepython
VSCodeを使う
python
この記事は約3分で読めます。

atomの開発終了が告知されました…涙

これまで、atomでメモやpython の実行をしていたのですが、これを機会に気になったVSCodeに乗り換えています。

VSCodeでOnedrive上のpythonファイルを実行しときに、つまづいたところの、暫定対処について記載します。

Onedrive上のpythonファイルを実行するとエラーになる?

作成したメモやファイルは、他のPCでも確認することが多くOnedrive上に保存しています。

Onedrive上に保存したpythonファイルをVSCodeで実行したところ下記のようなエラーになりました…!

💡 PS C:\> & C:/Users/PATH/python.exe "c:/Users/全角やスペースを含むPATH/OneDrive/test.py" C:/Users/PATH/python.exe : can't open file 'c:/Users/全角やスペースを含むPATH/OneDrive/test.py': [Errno 2] No such file or directory

実施環境

VSCode 1.73.0

Windows10

python 3.11.0

原因の切り分け

「全角やスペースを含むパスが悪い?」

→関係なさそう

Cドライブ直下に「テスト – フォ  ルダ」を作成して、test.pyを配置したところ、問題なくVSCodeから動作した

「pythonのインストールや作成したtest.pyがなにか問題あり?」

→関係なさそう

VSCodeではなく、コマンドプロンプトから実行したところ問題なく動作した

「パスの長さが悪い?」

→関係なさそう

Onedrive以外でずっと長いパスのところにtest.pyを配置して、問題なくVSCodeから動作した

ジャンクションで別フォルダからアクセスする

いくつか確認してみたのですが、Onedrive以外では問題なく動作しそうでした。

そこで、ジャンクションを作成し、別フォルダから対象ファイルにアクセスしてみました。

ジャンクションについて

Windowsのシンボリックリンクとジャンクションとハードリンクの違い:Tech TIPS – @IT https://atmarkit.itmedia.co.jp/ait/articles/1306/07/news111.html

Windowsで作成できる「ショートカット」の別バージョン、みたいな解釈です。

ジャンクションを作成する

コマンドプロンプトで作成します。

mklink /j <作成するリンクフォルダの名前> <リンクしたいフォルダ>

作成したジャンクションは、他のフォルダと同じようにアクセスできます。

今回はCドライブ直下に「atom_j」という名前でジャンクションを作成しました。

mklink /j "C:\\atom_j" "c:/Users/全角やスペースを含むPATH/OneDrive/atom"

C:\\atom_j <<===>> C:/Users/全角やスペースを含むPATH/OneDrive/atom のジャンクションが作成されました

ワークスペースとして、作成したジャンクション「atom_j」を指定しpython実行する

問題なく実行出来ました!

まとめ:ジャンクションを使って便利にファイルアクセスしよう

今回はVSCodeのエラーを解消するため、ジャンクションを使ったファイル指定を確認しました。

根本解消は、もしかしたら別にあるかもしれませんが、しばらくこの状態でVSCodeの使い方を確認してみたいと思います。

タイトルとURLをコピーしました