Как развернуть настольное приложение Python?

Это сработало для меня

    $sql = 'INSERT INTO table(pk_pk1,pk_pk2,date,pk_3) VALUES '; 
    $qPart = array_fill(0, count($array), "(?, ?,UTC_TIMESTAMP(),?)");
 $sql .= implode(",", $qPart);
 $stmt =    DB::prepare('base', $sql);
     $i = 1;
     foreach ($array as $value) 
       { 
       $stmt->bindValue($i++, $value);
       $stmt->bindValue($i++, $pk_pk1);
       $stmt->bindValue($i++, $pk_pk2); 
      $stmt->bindValue($i++, $pk_pk3); 
      } 
    $stmt->execute();
30
задан cdleary 17 January 2009 в 05:20
поделиться

4 ответа

Можно распределить скомпилированный байт-код Python (.pyc файлы) вместо источника. Вы не можете предотвратить декомпиляцию в Python (или никакой другой язык, действительно). Вы могли использовать obfuscator как pyobfuscate для создания его более раздражающим для конкурентов для дешифровки декомпилируемого источника.

, Поскольку Alex Martelli говорит в этом потоке , если Вы хотите хранить свой код в тайне, Вы не должны выполнять его на машинах других людей.

IIRC, в прошлый раз, когда я использовал cx_Freeze, он создал DLL для Windows, который удалил необходимость собственной установки Python. Это, по крайней мере, стоит проверить.

13
ответ дан bstpierre 17 January 2009 в 05:20
поделиться
  • 1
    Это - блестящее решение! это переименовывает ключ везде, где это находится в многомерном массиве. Поблагодарите Вас это сохранило меня часы работы. – Clinton 25 January 2019 в 10:12

Возможно, IronPython может предоставить что-то Вам? Я держал пари, что те .exe/.dll-files могут быть довольно заблокированы вниз. Не уверенный, как такие функции продолжают работать моно, таким образом никакая идея, как это работает над LINUX/OS X...

1
ответ дан dsvensson 17 January 2009 в 05:20
поделиться
  • 1
    По крайней мере, Вы don' t использование $row после того, как повторение и foreach выполняется в функции, это будет автоматически уничтоженный после конца функции. Когда-то $row может быть полезным, если Вы имеете, повреждают повторение и хотят использовать последний выполненный с помощью итераций элемент вне foreach. – StefansArya 2 November 2018 в 14:09

Ничего себе, существует много вопросов там:

  • возможно выполнить байт-код (.pyc) файл непосредственно от интерпретатора Python, но я не видел доступных инструментов путаницы байт-кода.

  • я не знаю ни о ком "все в одном" решении для развертывания, но:

    • Для Windows Вы могли использовать NSIS ( http://nsis.sourceforge.net/Main_Page ). Проблема здесь состоит в том, что, в то время как OSX / *nix идет с Python, Windows не делает. Если бы Вы не готовы создать двоичный файл с py2exe, я не уверен, что проблемы лицензирования окружили бы распределение среды выполнения Python (не говоря уже о технических).

    • Вы могли упаковать распределение OS X с помощью формата "пакета", и *ОТКЛОНЯЮТ, имеет свои собственные соглашения для установки программного обеспечения - обычно, "делают установку" сценарием.

Hope, которая была услужлива.

2
ответ дан pjbeardsley 17 January 2009 в 05:20
поделиться

Я использовал py2exe с хорошим успехом в Windows. Код должен быть изменен немного так, чтобы анализ кода взял все необходимые модули, но кроме которого, это работает.

Что касается Linux, существует несколько важных форматов распределения:

  • DEB (Debian, Ubuntu и другие производные)
  • об/мин (Redhat, Fedora, openSuSE)

, который DEBs не являются особенно трудными сделать, особенно когда Вы уже используете distutils/setuptools. Некоторые подсказки даны в программный документ , примеры для упаковочных приложений Python могут быть найдены в репозиторий .

у меня нет опыта с об/мин, но я уверен, что существует достаточно примеров, которые будут найдены.

0
ответ дан Torsten Marek 17 January 2009 в 05:20
поделиться
  • 1
    Обновленный к Xcode 6.1 и внезапно я больше не нахожусь ни на каких группах разработчиков. Я (независимо) сделал вышеупомянутое, удаляю и добавляю мой AppleID назад, и мои команды возвратились. Хороший совет! – chadbag 21 October 2014 в 18:43
Другие вопросы по тегам:

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