編集3:スクリプト/実行可能ファイルの場所を知る必要がある場合は、に置き換え__file__
ました。sys.argv[0]
これはまったく同じではありませんが、私の場合は正常に動作しているようです(少なくとも実行可能バージョンでは...)。これで、受け入れられた回答の機能を使用してリソースファイルにアクセスし、1ファイルモードですべてが正常に機能しています。
編集2:受け入れられた回答のコメントに示されているように、問題は私のスクリプトのパス解決に起因しています。スクリプトの場所を取得するためにを使用__file__
して、そのリソースファイルにアクセスできるようにします。これは、ファイル名をスクリプトに__file__
返すため、パッケージ化すると機能しません。そのため、パスはなく、ファイル名だけが返されます。Python.dll
したがって、リソースファイルにアクセスするための別のトリックを見つける必要があります。現時点での回避策は、現在のディレクトリを実行可能パスに移動することです。
ちなみに、これは、ConfigParserがファイルにアクセスするときに問題を報告する必要があることを意味し、セクションが欠落していることではありません。
このパス解決の質問を解決した方法で、この質問を更新します。
に問題がpyinstaller
あり、初めて使用するので、何か間違ったことをしたことは間違いありません。
だから、ここに問題があります:pyisntaller
私が書いたスクリプトでスムーズに実行され、フォルダにいくつかのものを生成しdist
ます。さて、今度はそれを実行してすべてがうまくいったかどうかを確認したいと思います。これが私が得たものです:
C:\Program Files\PyInstaller\pyinstaller-1.5.1>p_tool\dist\p_tool\p_tool.exe -?
Traceback (most recent call last):
File "<string>", line 104, in <module>
File "p_tool\build\pyi.win32\p_tool\outPYZ1.pyz/logging.config", line 76, in f
ileConfig
File "p_tool\build\pyi.win32\p_tool\outPYZ1.pyz/logging.config", line 112, in
_create_formatters
File "p_tool\build\pyi.win32\p_tool\outPYZ1.pyz/ConfigParser", line 532, in ge
t
ConfigParser.NoSectionError: No section: 'formatters'
私の最初のアイデアは、logging.conf
ファイルが欠落しているということだったので、ファイル(および他のいくつかのリソースファイル)をファイルに追加しましたp_tool.spec
が、これは良くありません。
Pythonバージョン:2.6.6、WinXPで。pyinstaller
Solarisワークステーション用のファイルをパッケージ化するために必要になるため、使用しています。
それで、誰かがこの問題を抱えていましたか?関連する唯一のトピックは次の質問です:PyInstallerの問題、本当に私の問題に近いですが、うまくいけば答えが得られませんでした。
Edit3:問題とは実際には関係がないため、ロギングに関する詳細が削除されました。