Py2App Не могу найти стандартные модули - PullRequest
2 голосов
/ 28 августа 2009

Я создал приложение, использующее py2app, которое работает нормально, но если я его разархивирую / разархивирую, то новая распакованная версия не сможет получить доступ к стандартным модулям python, таким как traceback или os. На man-странице для zip утверждается, что она сохраняет ветки ресурсов, и я видел другие приложения, упакованные таким образом (мне нужно иметь возможность поместить это в файл .zip). Как мне это исправить?

Ответы [ 3 ]

4 голосов
/ 11 января 2010

Это вызвано созданием полу-автономной версии , которая содержит символические ссылки на изначально установленные файлы, и, как вы говорите, ссылки теряются при архивировании / разархивировании, если только " -y * 1004" * "опция используется.

Альтернативное решение состоит в том, чтобы вместо этого создать standalone , который помещает (общедоступные) файлы в приложение и, таким образом, лучше выживает при архивировании / распаковывании и т. Д. Это также означает, что приложение более устойчиво к изменениям в базовой ОС. Недостатком является то, что он больше, и его сложнее настроить.

Чтобы создать автономную версию, вам нужно установить версию python.org, которую можно перепаковать. Объяснение того, как это сделать, здесь , но прочтите комментарии, так как с момента написания поста в блоге произошли некоторые изменения.

0 голосов
/ 29 августа 2009

Вам, вероятно, нужно дать ему полную PYTHONPATH.

Зависит от вашей ОС. Вот как это узнать:

import os [или любой другой стандартный модуль] Os. файл ()

0 голосов
/ 28 августа 2009

используйте zip -y ... для создания файла с сохранением символических ссылок.

...