Windows 10クリエーターが更新されるため、シンボリックリンクの作成時に開発者モードを使用して管理者権限を回避できます。今、私はこのようなMKLINKを使用してシンボリックリンクを作成することができました:Windows 10クリエイターのPythonシンボリックリンク
os.system('mklink %s %s' %(dst, src))
うまくいけば、それはDSTは、先のシンボリックリンクのパスで、かつSRCがシンボリックリンクのソース・ファイルであることは明らかです。それは正常に動作しているようだが、失敗した場合はエラーにならず、各シンボリックリンクが確実に成功するのを少し難しくする。各シンボリックリンクの後にパスが存在するかどうかを確認できますが、try/except節より効率が悪いです。毎回すぐにポップアップして閉じるコマンドシェルウィンドウ(?)のようなものもあります。多くのファイルをシンボリックリンクすると、実際には迷惑になります。
他のオプションを試しています私はこのようなスタックオーバーフローで見つけました:How to create symlinks in windows using Python?残念ながら、CreateSymbolicLinkWコマンドは私のために働いていないようです...私もこれを見つけました:OS.symlink support in windowsあなたはグループポリシーエディタを調整する必要があるようです。ただし、明示的にsymlink特権でそのユーザーを設定したとしても、管理者グループのユーザーは管理者としてプロセスを実行する必要があります。窓10クリエータアップデートで
は、新しいdwflagの言及はCreateSymbolicLink API(SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE)にあります、あなたはここでそのためのリファレンスを参照してくださいすることができますsymlinks windows 10
をctypesのものを使用すると、aは私の頭の上のビット、誰かが知っている場合私は思っている:私は実際に新しいdwflagを使用することはできますか?どうやって使うの?プロセスを管理者として実行しなくても動作しますか?
私はAutodesk Mayaを使用していますので、私はPython 2.7のオプションに固執しています... Mayaを管理者として起動しようとしていないので、うまくいけば分かりませんが、たとえそれがあってもジャンプします...あなたが与えることができる援助に感謝します。
'os.symlink'は' SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE'をまだサポートしていません。しかし、この機能はPython 2のWindowsでは利用できません。 PyWin32が利用可能な場合は、['win32file.CreateSymbolicLink'](http://docs.activestate.com/activepython/2.6/pywin32/win32file__CreateSymbolicLink_meth.html)を呼び出し、手動でフラグ値(2)を渡すことができます。ターゲットがディレクトリ(1)であることを示すことを忘れないでください。この場合、 'Flags'は両方の値を必要とします。 '2 | 1 'となる。 – eryksun
この時点で私はpywin32にアクセスできません...私はこの 'kdll = ctypes.windll.LoadLibrary(" kernel32.dll ")でフラグを使用しようとして失敗しました。 kdll.CreateSymbolicLinkW(dst、src、2) '不正な書式設定は残念です...これらの2行を落として、それぞれが独自の行を持つようにする方法を見つけられませんでした –
' kernel32 = ctypes.WinDLL( 'kernel32' use_last_error = True) 'を返します。その後、呼び出しが失敗した場合は、 'raise ctypes.WinError(ctypes.get_last_error())'によって正確な例外を送出することができます。 – eryksun