Изменить 3: я заменил __file__
на sys.argv[0]
, когда мне нужно знать местоположение моего скрипта / исполняемого файла. Это не совсем то же самое, но в моем случае, похоже, все работает нормально (по крайней мере, в исполняемой версии ...). Теперь все работает нормально, в однофайловом режиме, с использованием функции принятого ответа для доступа к файлам ресурсов!
Изменить 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: сведения о ведении журнала удалены, поскольку на самом деле не связаны с проблемой.