1

setup.py

from distutils.core import setup
import py2exe

setup(console=['program.py'])

エラー

Traceback (most recent call last):
File "program.py", line 427, in <module>
File "program.py", line 242, in __init__
WindowsError: [Error 267] The directory name is invalid: 'C:\\Users\\Bob\applications\\Program\\test\\v0.6\\dist\\library.zip/*.*'

libraryディレクトリ名は、distフォルダーにあり、コンパイル中に作成されたというzipファイルを指します。

program.pyの240行目から246行目

 file_list = []
 root_dir = sys.path[0]
 for path in os.listdir(root_dir):
    full_path = os.path.join(root_dir, path).lower()
    if os.path.isfile(full_path) and full_path.endswith('txt'):
        # create list of (filename, dir) tuples
        file_list.append((path.lower(), full_path))

program.pyの427行目

gui = GuiTk(win)

問題の原因となるアイデアはありますか?Windows764ビットとPortablePython2.7.2.1を使用して実行可能ファイルを作成します。コンパイル手順中に他のエラーはありません。

4

1 に答える 1

1

のアイテムを一覧表示しようとしていますsys.path()。ドキュメントから:

sys.pathモ​​ジュールの検索パスを指定する文字列のリスト。環境変数PYTHONPATHから初期化され、さらにインストールに依存するデフォルト。

プログラムの起動時に初期化されるため、このリストの最初の項目であるpath [0]は、Pythonインタープリターを呼び出すために使用されたスクリプトを含むディレクトリーです。スクリプトディレクトリが利用できない場合(たとえば、インタプリタがインタラクティブに呼び出される場合、またはスクリプトが標準入力から読み取られる場合)、path [0]は空の文字列であり、Pythonに現在のディレクトリ内のモジュールを最初に検索するように指示します。PYTHONPATHの結果として挿入されたエントリの前に、スクリプトディレクトリが挿入されていることに注意してください。

あなたのようなpy2exe実行可能ファイルの場合、sys.pathlibrary.zip(実行可能ファイルが機能するために必要となる可能性のあるインストールでpy2exeが見つけるすべての純粋なソースモジュールを保持するアーカイブ)のパスを含むリストです。
ただし、パスにzipアーカイブを使用することはできませんos.listdir

>>> import os
>>> d = 'C:\\test.zip'
>>> os.listdir(d)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
WindowsError: [Error 267] El nombre del directorio no es válido: 'C:\\test.zip/*.*'
>>> 

おそらく、sys.pathを探しているのではなく、変数の名前が示すように「現在のディレクトリ」を探しています。
これが事実である場合、それからos.getcwd仕事をします

于 2012-06-16T10:30:41.057 に答える