Исполняемый файл Python, работающий на разных версиях Linux - PullRequest
0 голосов
/ 18 декабря 2018

Мне нужно написать программу, которая в конце концов будет работать на CentOS (Версия 6.3 - это устройство защиты, но у меня есть доступ с правами root) Я установил среду разработки в Ubuntu и использовал pyinstaller для создания единого исполняемого файла.В PyCharm я могу выбрать между версиями Python 2.7 и 3.6 - я попробовал оба и создал исполняемый файл.Программа отлично работает на Ubuntu, но, к сожалению, не под CentOS CentOS показывает мне Python версии 2.66

Вопросы: - это должно работать в целом?- Я получаю ошибки - (отсутствуют библиотеки lib) (но файлы существуют): "./ICC: /lib64/libc.so.6: версия` GLIBC_2.14 'не найдена (требуется /tmp/_MEIoHOzeE/libz.so.1) "- я предполагаю, что версии не совпадают?

  • важно ли, какая версия Python установлена ​​на CentOS (2.66) (я надеялся, что exectuable будет содержать все необходимое?)

  • Я использовал pyinstaller с опцией "--onefile"

  • Я добавил "#! / Usr / bin / python" в качестве первой строкимой исходный код

  • , если я запускаю файл .py (исходный код), я получаю несколько ошибок:

    . / ICC.py: строка 1: импорт: команда ненайдено ./ICC.py: строка 2: импорт: команда не найдена ./ICC.py: строка 13: версия: команда не найдена ./ICC.py: строка 24: попытка :: команда не найдена ./ICC.py:строка 25: синтаксическая ошибка рядом с неожиданным токеном (' ./ICC.py: line 25: logfile = open ("/tmp/icm-log.txt","w")'

(тот же код отлично работает в Ubuntu, думаю, все изменилось в новых версиях Python, которые сделали бысмысл)

  • Нужно ли писать программу на Python 2.66?Нужно ли переносить разработку на CentOS?

  • Я не могу обновить Python на CentOS, поскольку это может сломать другие вещи

Любые рекомендации, идеи,подсказки о том, как сделать эту работу.

TIA Martin

1 Ответ

0 голосов
/ 18 декабря 2018

Когда вы используете PyInstaller для создания исполняемого двоичного файла, вы должны сделать это на целевой машине или в целевой среде.

Вывод PyInstaller зависит от активной операционной системы и активной версии Python.Это означает, что для подготовки дистрибутива:

  • для другой ОС
  • для другой версии Python
  • для 32-битной или 64-битной ОС

вы запускаете PyInstaller на этой ОС под этой версией Python.Интерпретатор Python, выполняющий PyInstaller, является частью пакета и зависит от ОС и размера слова. "

Более подробная информация доступна здесь

...