Создайте автономный EXE-файл Windows, который не требует pythonXX.dll

То же самое, но с 32-разрядной целочисленной арифметикой:

#include <stdio.h>

unsigned short a [] = { 
  0x0876, 0x5421,
  0xfedc, 0xba90,
  0x90ab, 0xcdef,
  0x1234, 0x5678
};

int
main ()
{
  unsigned int d, r;

  do
    {
      r = a [0];

      d = r / 10;
      r = ((r - d * 10) << 16) + a [1];
      a [0] = d;

      d = r / 10;
      r = ((r - d * 10) << 16) + a [2];
      a [1] = d;

      d = r / 10;
      r = ((r - d * 10) << 16) + a [3];
      a [2] = d;

      d = r / 10;
      r = ((r - d * 10) << 16) + a [4];
      a [3] = d;

      d = r / 10;
      r = ((r - d * 10) << 16) + a [5];
      a [4] = d;

      d = r / 10;
      r = ((r - d * 10) << 16) + a [6];
      a [5] = d;

      d = r / 10;
      r = ((r - d * 10) << 16) + a [7];
      a [6] = d;

      d = r / 10;
      r = r - d * 10;
      a [7] = d;

      printf ("%d\n", r);
    }
  while (a[0] || a[1] || a[2] || a[3] || a [4] || a [5] || a[6] || a[7]);


  return 0;
}
16
задан alexroat 1 April 2009 в 20:38
поделиться

5 ответов

Можно сделать это в последней версии py2exe...
Просто добавьте что-то как код ниже в Вашем setup.py файл (ключевая роль 'bundle_files': 1).

Для включения пакета TkInter в установку используйте, 'включает' ключ.

distutils.core.setup(
      windows=[
            {'script': 'yourmodule.py',
             'icon_resources': [(1, 'moduleicon.ico')]
            }
      ],
      zipfile=None,
      options={'py2exe':{
                         'includes': ['tkinter'],
                         'bundle_files': 1
                        }
      }
  )
17
ответ дан 30 November 2019 в 21:03
поделиться

Из-за того, как динамический компоновщик Windows работает, Вы не можете пользоваться статической библиотекой при использовании .pyd или .dll модулей Python; DLLs, загруженные в Windows, автоматически не совместно используют свое пространство символа с исполняемым файлом и тем самым требуют отдельного DLL, содержащего символы Python.

5
ответ дан 30 November 2019 в 21:03
поделиться

Если Ваша цель наличия единственного исполняемого файла состоит в том, чтобы упростить загрузку/пользование электронной почтой, и т.д., я решил это путем связывания вывода py2exe с помощью Установки Inno. Это на самом деле лучше, чем наличие единственного исполняемого файла, потому что вместо того, чтобы обеспечить исполняемый файл, который может быть брошен в некоторый каталог, Приложение Windows хорошего поведения предоставит деинсталлятор, обнаружится в Добавить/Удалить апплете Программ и т.д. Inno обрабатывает все это для Вас.

4
ответ дан 30 November 2019 в 21:03
поделиться

Другое решение состоит в том, чтобы создать единственный exe с Python и всеми Вашими зависимостями, установленными в нем, включая python.dll. В обертке существует немного волшебства, но это просто работает. Детали здесь:

http://code.google.com/p/pylunch/downloads/detail?name=PyLunch-0.2.pdf

2
ответ дан 30 November 2019 в 21:03
поделиться

Это не лучший способ сделать это, но Вы могли бы рассмотреть использование исполняемого Архива SFX и с .exe и с .dll файлами внутри и установкой его для выполнения .exe файла, когда по этому дважды щелкают.

1
ответ дан 30 November 2019 в 21:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: