簡體   English   中英

運行在不同 Linux 版本上的 Python 可執行文件

[英]Python executable running on different Linux versions

我需要編寫一個最終將在 CentOS 上運行的程序(版本 6.3 - 它是一個安全設備,但我有根訪問權限)我在 Ubuntu 中安裝了一個開發環境並使用 pyinstaller 創建了一個可執行文件。 在 PyCharm 中,我可以在 Python 版本 2.7 和 3.6 之間進行選擇——我嘗試了這兩個版本並創建了 exe。 該程序在 Ubuntu 上運行良好,但不幸的是在 CentOS 下運行不正常 CentOS 向我顯示 Python 版本 2.66

問題:

  • 它應該在一般情況下工作嗎?

  • 我收到錯誤-(缺少庫)(但文件存在):“./ICC: /lib64/libc.so.6: 找不到版本‘GLIBC_2.14’(/tmp/_MEIoHOzeE/libz.so.1 需要)" - 我假設版本不匹配?

  • 在 CentOS (2.66) 上安裝哪個 python 版本很重要(我希望可執行文件包含所需的一切?)

  • 我使用帶有選項“--onefile”的pyinstaller

  • 我在源代碼的第一行添加了“#!/usr/bin/python”

  • 如果我運行 .py 文件(源代碼),我會收到多個錯誤:

    ./ICC.py:第 1 行:導入:找不到命令。/ICC.py:第 2 行:導入:找不到命令。/ICC.py:第 13 行:版本:找不到命令。/ICC.py:第 24 行: try:: command not found./ICC.py: line 25: syntax error near unexpected token ('./ICC.py: line 25: logfile = open ("/tmp/icm-log.txt","w" )'

(相同的代碼在 ubuntu 上運行良好,猜測在較新的 python 版本中發生了變化,這是有道理的)

  • 我需要用 Python 2.66 編寫程序嗎? 我需要將開發轉移到 CentOS 嗎?

  • 我無法在 CentOS 上升級 Python,因為它可能會破壞其他東西

關於如何進行這項工作的任何建議、想法和提示。

當您使用 PyInstaller 創建可執行二進制文件時,您必須在目標機器或目標環境上執行此操作。

PyInstaller 的輸出特定於活動操作系統和 Python 的活動版本。 這意味着要為以下內容准備分發:

  • 不同的操作系統
  • 不同版本的 Python
  • 32 位或 64 位操作系統

你在那個操作系統上運行 PyInstaller,在那個版本的 Python 下。 執行 PyInstaller 的 Python 解釋器是捆綁包的一部分,它特定於操作系統和字長。”

此處提供更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM