2

最近、インストーラーを使用してPython 2.7.1インストールを2.7.2にアップグレードしました.msiが、プロセスは正常に行われたようです。しかし、その後、たまたまデフォルト値が何であるかを調べて、sys.path「C:\ Windows \ system32\python27.zip」のエントリに気づきました。何が入っているのか疑問に思ったので、Zipユーティリティで開いて内容を確認することにしましたが、すぐにファイルがないことに気付きました(ただしpython27.dll)。

とにかく私は今何かが間違っているかどうか疑問に思っています。私が頻繁に使用するいくつかの既存のPythonプログラムはすべて問題なく動作しているように見えるので、インストールが台無しになっているかどうか(または、もしそうなら、それを修正する方法)はわかりません。

アップデート

私はPEP273を知っていて読んだことがあるので、.zipファイルモジュールについて知っています。それは私が求めていることではありません。私が知りたいのは、問題python27.zipで参照されているにもかかわらず、システムにインストールされていないという事実です。sys.path標準のPythonライブラリをインポートする際に問題が発生したことは一度もありません。これは、ライブラリがないと影響を受けると予想されることです。

4

1 に答える 1

5

PEP 273から-Zipアーカイブからモジュールをインポートします:

sys.pathに現在デフォルトのディレクトリ名があるのと同じように、デフォルトのzipアーカイブ名も追加されます。そうしないと、アーカイブからすべてのPythonライブラリファイルをインポートする方法がありません。

..。

問題は名前がどうあるべきかです。同じマシン上に複数のPythonバージョンがある場合でも、Python実行可能ファイルが対応するライブラリを正しく見つけることができるように、名前はPythonバージョンとリンクする必要があります。

sys.pathに1つの名前を追加します。Unixでは、ディレクトリはsys.prefix + "/ lib"であり、ファイル名は "python%s%s.zip"%(sys.version [0]、sys.version [2])です。したがって、Python2.2とプレフィックス/usr / localの場合、パス/usr/local/lib/python2.2/はすでにsys.pathにあり、/ usr / local / lib/python22.zipが追加されます。Windowsでは、ファイルはpython22.dllへのフルパスであり、「dll」は「zip」に置き換えられます。zipアーカイブ名は、常にsys.pathの2番目の項目として挿入されます。1つ目はmain.pyのディレクトリです(Timに感謝します)。

于 2011-08-04T21:55:53.860 に答える