Я пытаюсь создать exe-файл с PyInstaller (режим с одним файлом). Моя программа - это один файл (usingTry.py). Это супер простой файл, который создает экземпляр класса «TrySystem» из созданного мной файла яйца. Класс «TrySystem» загружает XRC-файл и помещает в него растровую кнопку с использованием wxPython. XRC и файлы изображений сохраняются в качестве внутренних ресурсов яичных, как описано в Managing resources in a Python projectссылаясь на ресурсы яйца питона при использовании PyInstaller
Я готовлю яйца на макинтош (10.8.5):
sudo python setup.py bdist_egg
Я затем скопировать его на машину WinXP (на самом деле она работает на том же compoter как VM) и установить его:
easy_install Try\try2\dist\try3-1.0-py2.7.egg
Когда я затем попытаться запустить «питон usingTry.py» из питона терминала (на WinXP), все работает отлично, и я вижу, кадра и кнопки. я затем, чтобы подготовить файл программы из «usingTry.py» (на WinXP):
Try\users\usingTry>pyinstaller.py -F usingTry.py
И тогда я пытаюсь запустить его:
Try\users\usingTry>dist\usingTry.exe
Traceback (most recent call last):
File "<string>", line 11, in <module>
File "<string>", line 4, in __init__
File "z:\Documents\workspace\python\Try\users\usingTry\build\pyi.win32\usingTry\out00-PYZ.pyz\try3", line 35, in __init__
File "z:\Documents\workspace\python\Try\users\usingTry\build\pyi.win32\usingTry\out00-PYZ.pyz\try3", line 8, in __init__
File "z:\Documents\workspace\python\Try\users\usingTry\build\pyi.win32\usingTry\out00-PYZ.pyz\wx._core", line 7981, in __init__
File "z:\Documents\workspace\python\Try\users\usingTry\build\pyi.win32\usingTry\out00-PYZ.pyz\wx._core", line 7555, in _BootstrapApp
File "z:\Documents\workspace\python\Try\users\usingTry\build\pyi.win32\usingTry\out00-PYZ.pyz\try3", line 14, in OnInit
File "z:\Documents\workspace\python\Try\users\usingTry\build\pyi.win32\usingTry\out00-PYZ.pyz\pkg_resources", line 868, in resource_filename
File "z:\Documents\workspace\python\Try\users\usingTry\build\pyi.win32\usingTry\out00-PYZ.pyz\pkg_resources", line 181, in get_provider
File "c:\programs\pyinstaller-2.0\PyInstaller\loader\iu.py", line 409, in importHook
raise ImportError("No module named %s" % fqname)
ImportError: No module named try3.resources
Кто-то знает, как решить эту проблему ? В этом link является почтовый файл со всем:
try.zip:
Try/
try2/ (this is the code that creates the egg)
setup.py
ez_setup.py
try3/ (the egg's code)
__init__.py
resources/ (here are the resource files used in the egg)
__init__.py
main.xrc
stopButton.png
build/
... (files created while I built the egg)
dist/
try3-1.0-py2.7.egg (the prepared egg file)
try3.egg-info/
...
users/
usingTry/ (here is the code that uses the egg file)
usingTry.py
usingTry.spec
dist/
usingTry.exe (created by "pyinstaller -F usingTry.py")
try3/ (I manually copied it here from Try/try2/ so the exe file works)
build/ (created by PyInstaller)
...
logdict2.7.5.final.0-1 (created by PyInstaller)
Вы заметите, что папка Попробуйте \ try2 \ try3 (который содержит код яйцеклетки) был вручную скопирован туда, где создается EXE файл (Попробуйте \ пользователи \ usingTry \ расст). Это связано с тем, что файл exe работает. Я нашел это решение в PyInstaller generated exe not working, project uses ReportLab
То, что я хотел бы сделать, это избежать этого обходного пути и что все будет работать. Это должно быть очень просто, поскольку на сайте PyInstaller указано, что они полностью поддерживают использование файлов с яйцами.
Одна вещь, которую вы можете сделать, которая фактически не решает проблему, включает эти файлы в файлы данных. Он скопирует их для вас в каталог dist /. Скорее всего, вы хотите получить доступ к файлам из яйца, хотя, верно? Это [должно быть возможно] (http://pythonhosted.org/setuptools/pkg_resources.html#resource-extraction), и я помню, что он работал один раз. Если я не опоздаю, дайте мне знать, что я могу вам помочь. – jadkik94
Да, пожалуйста! Я все еще жду, чтобы кто-то помог мне в этом. – yoel