※レジストリを触ります。自己責任でお願いしますね。「MAX_PATH 260」を解除するのに必要なレジストリ値がWindows10HOME(64)のどこにあるか、どうやって制限文字数を解除するか、という課題でございます。見つけることが一番であります…。
<環境:Windows10HOME(64)>
Windows10HOME(64):普段はwindows10(64)と書くのですが、HOMEバージョンであることが今回大切みたいですので、よろしくお願いします。
<Proバージョンなどには「ローカルグループポリシーエディター」があるが>
ネット情報見てましたらWindows10Proバージョンなどには「ローカルグループポリシーエディター」(gpedit.msc)があり、Path(え~と荒っぽく言うと、HDDドライブから目的のファイルまでのディレクトリ構造を現した文字の集まり、みたいなこと)が割と容易に編集できるようです。一方、同HOMEバージョンでは「ローカルグループポリシーエディター」が使えないので、直接「レジストリ」を書き換える必要があるようです。
Proバージョンをつかうということはそれなりにわかっている人か、懐に余裕のある方が使うということでしょうから、Path文字数制限に関係して書いてあることも解決が早いのかと思います。
爺がつかっているHOMEバージョンでは、直接レジストリを書き換えようとしたものの、デレクトリ、ファイル構造が異なるのか、どうもProバージョンの位置関係と異なるようなのでした。
それで、自分で調べてみました。
<Proバージョンで書いてあったりする「Policies」に目的の「FileSystem」はありませんでした>
HKEY_LOCAL_MACHINE→SYSTEM→CurrentControlSet のあたりまでは同じなのですが、HOMEバージョンの
「Policies」フォルダに該当の項目(FileSystem)はありませんでした。これが、爺のPCだけのことなのか、HOMEバージョンだと皆同じなのかわかりません…悪しからず。
なので、以下は爺のPCではそうだった、ということでご理解くださいね。
<LongPathsEnabledはいずこ>
さらにあれこれ見ていった結果、HKEY_LOCAL_MACHINE→SYSTEM→CurrentControlSet→Control→FileSystem のなかに「LongPathsEnabled」(下図)がありました。
HOMEバージョン使っている人が、レジストリを触るとか、そのために「レジストリエディタ」を起動する、というのはやはり敷居が高いですよね
爺にとってもそうです。
実際には今回のPath260文字制限解除は、Pythonをインストールするとき、その制限を解除するオプション(チェックを入れるだけ)がありましたので、今回レジストリ値を見たら、すでに「1」になっておりました(=制限解除済)。
<レジストリエディタ起動し、編集>
コントロール パネル→システムとセキュリティ→管理ツール→レジストリエディターという流れで進行すると、レジストリの集団が表示されます。そのなかから、HKEY_LOCAL_MACHINE→SYSTEM→CurrentControlSet→Control→FileSystem→LongPathsEnabledの順にたどれば値が表示され、編集することができるようになります。
<フォルダ、CurrentControlSetとControlSet001の関係>
爺、レジストリの相互関係のことなどよくわかりませぬ。自分の目に見えたことを書きますが、動作の結果がどういう意味があるかわかりませんので、お含みおきください。
HOMEバージョンのPath文字数の制限解除に必要なレジストリの位置はなんとなくわかりました。ところが、似たようなCurrentControlSetとControlSet001があるではありませんか(爺のPCの場合)。それで中を見たら、「FileSystem」フォルダ内をさらに見たら、同様の値になっています。
エディタでCurrentControlSetの「LongPathEnabled」値を変更してみたです。同Set001の同じ値を見たら、Setと同じ値に変更されていました。どちらがどのように必要でどのように優先されるのか爺にはよくわかりません。Setの値を変えたらSet001も引きずられてそうなった、という現象が目にとまった、のでありました。
ええ、わかる人には簡単なことでしょうけど、爺にはこれがどういうことなのかなどは不明です…シクシク。
<で結局…ドラッグアンドドロップでPythonプログラム動いた>
「LongPathEnabled」値を0に変更し、PC再起動した後、コマンドプロンプト画面でドラッグアンドドロップ(時には、そのあとマウスクリック)→プロンプト現れる→[Enter]してみたら、普通に動きました。
なんとなくそうなったみたい、という程度であります。どこかに副作用が出てくるのかもしれませぬ。Pythonインストール時「Add Python 3.7 to PATH 」のところにチェックを入れ忘れないようにする、というのが爺のような素人には大切なことかと思いました。
pagetaka.hatenablog.jp