Найти - Пользователи
Полная версия: Компиляция через cx_freeze
Начало » Инструментальные средства разработки » Компиляция через cx_freeze
1
Faer
Написал я один скрипт и никак не могу его скомпилировать. Дело в том, что я использовал стороннюю библиотеку Pmw. Как следствие, скомпилированный файл EXE при запуске выдаёт ошибку, якобы, он эту библиотеку не видит(см. картинку).

Подскажите, как это исправить.

Файл setup.py:
import sys
from cx_Freeze import setup, Executable
build_exe_options = {"includes": ["Pmw"]}
base = None
if sys.platform == "win32":
    base = "Win32GUI"
setup(  name = "Passworder",
        version = "1.0",
        description = "Password keeper and generator",
        options = {"build_exe": build_exe_options},
        executables = [Executable("Passworder.py", base=base)])
doza_and
Faer
и никак не могу его скомпилировать
Немного не в тему.
1 Поскольку это ваше первое сообщение, то: А может вам не надо компилировать скрипт? В 99 случаях из 100 этого не требуется. Попробуйте обосновать сообществу зачем это надо.
2 Полезно проверить что будет при попытке выполнить из обычного скрипта os.listdir(“C:\\Docu…”). Не раз писал - под windows использовать в путях к модулям русские буквы, пробелы и прочие выкрутасы это искать приключений на свою задницу. Извините за грубость.
3 listdir не может залезть в архивы, а import может:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
print os.listdir(u"фыв фыв/pmw.zip/pmw")
Traceback (most recent call last):
File “a.py”, line 4, in <module>
print os.listdir(u“фыв фыв/pmw.zip/pmw”)
WindowsError: Error 3 : u'\u0444\u044b\u0432 \u0444\u044b\u0432/pmw.zip/pmw\\*.*'

:) т.е. моя основная рекомендация по удалению ошибки компиляции: не компилировать скрипт.

Faer
Я намерен раздавать скрипт. Всё-таки, Python имеется далеко не у всех, а устанавливать его из-за одной программы не очень-то рентабельно. Проще скомпилировать его и раздавать без лишних заморочек.

Вот за русские буквы спасибо. Проблема не в этом, но это помогло мне справиться с другой, новой проблемой. XD

В общем-то я решил вопрос, заменив Pmw'шный виджет стандартным tkinter'овским. То есть, просто исключил присутствие Pmw в import'ах.
doza_and
Faer
а устанавливать его из-за одной программы не очень-то рентабельно
А вы посмотрите - cx_freeze практически и ставит питон. Поэтому если вы распространяете одно приложение то никакой нет, а для двух и более получится много неполноценных копий питона, которые трудно поддерживать и обновлять.
Посмотрите на java, они ведь не стесняются рантайм свой ставить, почему вы должны стесняться ставить питон?
Faer
doza_and
Посмотрите на java, они ведь не стесняются рантайм свой ставить, почему вы должны стесняться ставить питон?
Тоже верно!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB