[Python] вопрос/ответ.

Discussion in 'Python' started by De-visible, 21 Jan 2009.

  1. moonden

    moonden Member

    Joined:
    3 Jul 2010
    Messages:
    44
    Likes Received:
    7
    Reputations:
    0
    Доброго времени всем. Не могу нормально скомпилировать питон скрипт в exe. Скрипт написан для python 2.7, собснно для него компилировался. Пробовал pyinstaller и cx_Freeze.
    Это сканер-брутер RDP с рандомным выбором диапазонов. Сам скрипт
    При запуске в виде скрипта работает нормально:
    [​IMG]

    [​IMG]
    С pyinstaller компиляция вроде проходит успешно:
    [​IMG]
    Лог компиляции log_pyinstaller.txt
    Но при запуске, он начинает постоянно запускать сам себя:
    [​IMG]
    [​IMG]
    При этом сканирование и брут не работают.
    Точно такая же история и с cx_Freeze. Для компиляции использовался созданный по инструкции скрипт.
    Code:
    # coding: utf-8
    
    from cx_Freeze import setup, Executable
    
    executables = [Executable('scann.py')]
    
    setup(name='hello_world',
          version='0.0.1',
          description='My Hello World App!',
          executables=executables)
    Скрины выкладывать не буду, они такие же, а это лог компиляции.

    В архиве по ссылке выше, два варианта, scann.py это автономный скрипт, а scann_2.py работает в связке с конфигурационным conf.py. Пробовал компилировать оба варианта. Учитывая, что использовались два разных компилятора, я предполагаю, что проблема где-то в самом скрипте. По сути он запускается, но начинает почему-то рекурсивный самозапуск. Я в программировании полный ноль, могу только методом тыка что-то подправить/настроить, поэтому просьба знатокам, посмотрите пожалуйста, как можно заставить его работать. Заранее спасибо.
    P.S. Скрипт взят с экспы. Там я этот вопрос тоже задавал, но видимо ввиду давности темы, ответа не было.
     
    #1121 moonden, 1 Oct 2019
    Last edited: 1 Oct 2019
  2. Markus

    Markus New Member

    Joined:
    19 Nov 2018
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    попробуй через py2exe. И у тебя во второй строке scann.py ошибка нету такой кодировки utf_8.
    это не рекурсивный самозапуск а форк родительского процесса тк как используется многопроцессорность... Видать криво написана - если порождает дофига процессов или процессы виснут...Такие вещи уметь писать надо)

    ЗЫ пересобири с py2exe там сборка простая
     
    #1122 Markus, 2 Oct 2019
    Last edited: 2 Oct 2019
  3. moonden

    moonden Member

    Joined:
    3 Jul 2010
    Messages:
    44
    Likes Received:
    7
    Reputations:
    0
    Установил py2exe отсюда, инструкцию подсмотрел на хабре.
    Выдает ошибку "ImportError: No module named sip":
    Code:
    E:\ALLhack\Brut\NL_PythonRDP\rdpbrute>setup.py py2exe
    running py2exe
    creating E:\ALLhack\Brut\NL_PythonRDP\rdpbrute\build
    creating E:\ALLhack\Brut\NL_PythonRDP\rdpbrute\build\bdist.win-amd64
    creating E:\ALLhack\Brut\NL_PythonRDP\rdpbrute\build\bdist.win-amd64\winexe
    creating E:\ALLhack\Brut\NL_PythonRDP\rdpbrute\build\bdist.win-amd64\winexe\collect-2.7
    creating E:\ALLhack\Brut\NL_PythonRDP\rdpbrute\build\bdist.win-amd64\winexe\bundle-2.7
    creating E:\ALLhack\Brut\NL_PythonRDP\rdpbrute\build\bdist.win-amd64\winexe\temp
    creating E:\ALLhack\Brut\NL_PythonRDP\rdpbrute\dist
    *** searching for required modules ***
    Traceback (most recent call last):
      File "E:\ALLhack\Brut\NL_PythonRDP\rdpbrute\setup.py", line 6, in <module>
        options={"py2exe": {"includes":["sip"]}}
      File "E:\Python_27\lib\distutils\core.py", line 151, in setup
        dist.run_commands()
      File "E:\Python_27\lib\distutils\dist.py", line 953, in run_commands
        self.run_command(cmd)
      File "E:\Python_27\lib\distutils\dist.py", line 972, in run_command
        cmd_obj.run()
      File "E:\Python_27\lib\site-packages\py2exe\build_exe.py", line 243, in run
        self._run()
      File "E:\Python_27\lib\site-packages\py2exe\build_exe.py", line 296, in _run
        self.find_needed_modules(mf, required_files, required_modules)
      File "E:\Python_27\lib\site-packages\py2exe\build_exe.py", line 1297, in find_needed_mod
    ules
        mf.import_hook(mod)
      File "E:\Python_27\lib\site-packages\py2exe\mf.py", line 719, in import_hook
        return Base.import_hook(self,name,caller,fromlist,level)
      File "E:\Python_27\lib\site-packages\py2exe\mf.py", line 136, in import_hook
        q, tail = self.find_head_package(parent, name)
      File "E:\Python_27\lib\site-packages\py2exe\mf.py", line 204, in find_head_package
        raise ImportError, "No module named " + qname
    ImportError: No module named sip
    
    Code:
    from distutils.core import setup
    import py2exe
     
    setup(
        windows=[{"script":"scann.py"}],
        options={"py2exe": {"includes":["sip"]}}
    )
    Как я понял, не находит некий модуль "sip" . Пробовал гуглить, но так и не понял, как его установить. Не смог найти понятного мануала. Пробовал методом тыка "pip install sip" и "pip install python-sip" выдает:
    Code:
      ERROR: Could not find a version that satisfies the requirement python-sip (from versions: none)
    ERROR: No matching distribution found for python-sip
    Вообщем с этим компилятором вообще ничего не понятно, на некоторых форумах советуют использовать pyinstaller, таки он собирает, но ничего не работает.
    Там же знак решетки, я так понимаю это комментарий, и у меня в текстовом редакторе есть utf-8
    [​IMG]
    Я тоже так подумал, раз два разных компилятора создают "рабочие" exe, которые с одинаковыми симптомами не работают. Вообщем вопрос открыт, что же можно с этим скриптом сделать?
     
Loading...