現在我已經試圖將我的python應用程序打包爲獨立的可執行文件。我一直試圖使用py2exe
,但它似乎從來沒有工作。不能讓py2exe工作
可以說我們有機器A和機器B,我在機器A上構建程序並嘗試在機器B上作爲可執行文件運行。在試圖在機器B上運行的前幾次嘗試中,它會說FATAL ERROR: Cannot load python library
,但是我認爲這是下降到py2exe
過程說1 missing module
全:
1 missing Modules
------------------
? readline imported from cmd, code, pdb
Building 'dist\workinghoursGUI.exe'.
Building shared code archive 'dist\library.zip'.
Copy c:\python34\python34.dll to dist
Copy C:\Python34\DLLs\select.pyd to dist\select.pyd
Copy C:\Python34\DLLs\_lzma.pyd to dist\_lzma.pyd
Copy C:\Python34\DLLs\_socket.pyd to dist\_socket.pyd
Copy C:\Python34\DLLs\unicodedata.pyd to dist\unicodedata.pyd
Copy C:\Python34\DLLs\_bz2.pyd to dist\_bz2.pyd
Copy C:\Python34\DLLs\pyexpat.pyd to dist\pyexpat.pyd
Copy C:\Python34\DLLs\_hashlib.pyd to dist\_hashlib.pyd
Copy C:\Python34\DLLs\_ssl.pyd to dist\_ssl.pyd
Copy C:\Python34\DLLs\_ctypes.pyd to dist\_ctypes.pyd
Copy C:\Python34\DLLs\_tkinter.pyd to dist\_tkinter.pyd
Copy DLL C:\Python34\MSVCR100.dll to dist\
Copy DLL C:\Python34\DLLs\tk86t.dll to dist\
Copy DLL C:\Python34\DLLs\tcl86t.dll to dist\
然後我看到了這個問題Py2Exe "Missing Modules",發現我需要安裝pyreadline
所以我做,那麼py2exe
過程didnt返回任何缺失的模塊,像這樣:
Building 'dist\workinghoursGUI.exe'.
Building shared code archive 'dist\library.zip'.
Copy c:\python34\python34.dll to dist
Copy C:\Python34\lib\site-packages\win32\_win32sysloader.pyd to dist\_win32sysloader.pyd
Copy C:\Python34\DLLs\_ssl.pyd to dist\_ssl.pyd
Copy C:\Python34\DLLs\select.pyd to dist\select.pyd
Copy C:\Python34\DLLs\_socket.pyd to dist\_socket.pyd
Copy C:\Python34\DLLs\_bz2.pyd to dist\_bz2.pyd
Copy C:\Python34\DLLs\_lzma.pyd to dist\_lzma.pyd
Copy C:\Python34\DLLs\pyexpat.pyd to dist\pyexpat.pyd
Copy C:\Python34\DLLs\_tkinter.pyd to dist\_tkinter.pyd
Copy C:\Python34\DLLs\unicodedata.pyd to dist\unicodedata.pyd
Copy C:\Python34\lib\site-packages\win32\win32api.pyd to dist\win32api.pyd
Copy C:\Python34\DLLs\_hashlib.pyd to dist\_hashlib.pyd
Copy C:\Python34\lib\site-packages\win32\win32evtlog.pyd to dist\win32evtlog.pyd
Copy C:\Python34\DLLs\_ctypes.pyd to dist\_ctypes.pyd
Copy DLL C:\Python34\DLLs\tcl86t.dll to dist\
Copy DLL C:\Python34\MSVCR100.dll to dist\
Copy DLL C:\Python34\DLLs\tk86t.dll to dist\
Copy ExtensionDLL C:\Python34\pywintypes34.dll to dist\
但現在當.exe
運行只輸出port>
一個窗口中顯示,而應用程序運行的機器上精機B A
這是我的安裝文件:
from distutils.core import setup
import py2exe,sys,os
setup(console=['workinghoursGUI.py'])
和在我的計劃進口都在Python的標準版本分別是:
from tkinter import *
from tkinter import ttk
import tkinter as tk
import tkinter.messagebox as tkm
import datetime,os,time
IM可能做一些顯然是錯誤的,但我不能工作了什麼,有誰知道我可以解決這個問題,或者我只是不得不放棄?
的dist
文件夾看起來是這樣的:
與像py2exe軟件構建獨立應用程序可以是一個醜陋的業務。這是可行的(我已經做了很多次),但是你最終花費了大量的時間修改分發文件夾(比如「手動」複製丟失的東西)。 python和py2exe版本對於這個問題都很重要。還有日誌文件的結果(當您運行該軟件時,它會顯示在遠處)。 [continue ...] – armatita
[...繼續]我的建議是讓你改變你的獨立發行版的範例。與其試圖使用py2exe打包所有文件,不如使用便攜式軟件將可移植版本的Python(例如[WinPython](http://winpython.github.io/))與一個.exe或批處理文件分發到應用程序中版。這是我目前正在分發我的主要獨立應用程序(例如:[GEOMS2](https://sourceforge.net/projects/geoms2/))。 – armatita
我在哪裏可以找到日誌文件? – badNameHere