Python for Windowsが%PROGRAMFILES%(“ C:\ Program Files”)にインストールされていないのはなぜですか?


回答:


22

どうやらこれは、Python開発者の間で7年間議論した原因です。

次の理論的根拠は著者によって与えられました:

作成者:Tim Peters(tim.peters)*(Pythonコミッター)日付:2006-03-22 20:27

昔、Pythonは(デフォルトで)「Program Files」の下にインストールしていました。それを変更しました。これは、frickinの埋め込みスペースによって生じる無限の問題と、「Program Files」がDOSish 8.3の名前ではないことによる、よりまれではあるがより微妙な問題のためです。全体としては、まだ良い変化だったと思います。

なお、(GUIベースされている)は、ほとんどのWindowsアプリケーションとは異なり、プログラミング言語がされていることを意図したスクリプトによって呼び出される、というように、コマンドラインから頻繁に使用されます。それが、パス内のスペースを際限なくエラーに陥らせる原因です。WinXP Proでは、MSが独自のコマンドライン/スクリプトツール(sort.exe、ipconfig.exe、cscript.exe、...、notepad.exeさえ)を純粋なDOSish 8.3のスペースフリーの下に置くことにまだ注意していることに気付きましたパス;-)


余談:権限昇格の可能性があるため、C:\ Program Files \の代わりにC:\を使用すると、セキュリティ上の危険が生じる可能性があります。

著者:ミカ・エロランタ(mel)日付:2005-09-07 21:34

PythonがWindowsにインストールされるデフォルトのインストールターゲットディレクトリは、システムドライブのルートディレクトリの直下にあります(例: "C:\ python24")。ルートディレクトリからpython24-directoryによって継承されたファイルとディレクトリのアクセス許可は、アプリケーションバイナリを保持するのに十分安全ではありません。

Microsoftは、無限の知恵で、システムドライブのルートディレクトリで、通常の(管理者ではない)ユーザーがそこにディレクトリとファイルを作成できるようにすることを決定しました。このパーミッションのセットは、デフォルトの場所(つまり「C:\ python24」など)に作成されたときに、pythonディレクトリに継承されます。

前述の特権エスカレーション攻撃を回避するためにPythonディレクトリを変更する場合は、icaclsを使用して\ Pythonディレクトリを変更できる可能性があります。


絶対パスでpythonを呼び出す人はほとんどいません。正しい方法は、binフォルダを入れること%PATH%です。スペースを扱う必要はもうありません。また、XP Proのコマンドライン実行可能ファイルがDOS 8.3パスにあるというのは正しくありません。通常、パスにはスペースがありませんが、多くのファイルはsysteminfo.exeのように8文字より長い長さを持っています
phuclv
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.