在我的应用程序中,应该可以用我的程序打开文件。但是当我点击myfile时..mft>;Open with>;myexe\u to\u Open_mft.exe文件然后exe得到一个错误:致命错误,无法执行脚本。如果我在没有open with的情况下按常规打开程序,则不会出现错误;如果通过命令提示符打开程序,则也不会出现错误。 谢谢你的帮助!你知道吗
(编辑:最后我通过ctypes隐藏了控制台,修复了这个错误)
pyinstaller --windowed -i icon.ico PickleViewer.py
Image from the Script if run over command line
pyinstaller的输出
162 INFO: PyInstaller: 3.5
162 INFO: Python: 3.7.4
163 INFO: Platform: Windows-10-10.0.18362-SP0
173 INFO: wrote
C:\Users\user\Documents\Python\Documents\pickle_viewer\PickleViewer.spec
177 INFO: UPX is not available.
179 INFO: Extending PYTHONPATH with paths
['C:\\Users\\user\\Documents\\Python\\Documents\\pickle_viewer',
'C:\\Users\\user\\Documents\\Python\\Documents\\pickle_viewer']
180 INFO: checking Analysis
199 INFO: Building because
C:\Users\user\Documents\Python\Documents\pickle_viewer\PickleViewer.py
changed
200 INFO: Initializing module dependency graph...
206 INFO: Initializing module graph hooks...
211 INFO: Analyzing base_library.zip ...
5148 INFO: running Analysis Analysis-00.toc
5191 INFO: Adding Microsoft.Windows.Common-Controls to dependent
assemblies of final executable
required by c:\users\user\appdata\local\programs\python\python37-
32\python.exe
8448 INFO: Caching module hooks...
8463 INFO: Analyzing
C:\Users\user\Documents\Python\Documents\pickle_viewer\PickleViewer.py
8789 INFO: Loading module hooks...
8789 INFO: Loading module hook "hook-encodings.py"...
8936 INFO: Loading module hook "hook-pydoc.py"...
8938 INFO: Loading module hook "hook-xml.py"...
9298 INFO: Loading module hook "hook-_tkinter.py"...
9871 INFO: checking Tree
9931 INFO: checking Tree
9984 INFO: Looking for ctypes DLLs
9985 INFO: Analyzing run-time hooks ...
9989 INFO: Including run-time hook 'pyi_rth__tkinter.py'
9996 INFO: Looking for dynamic libraries
17315 INFO: Looking for eggs
17316 INFO: Using Python library
c:\users\user\appdata\local\programs\python\python37-32\python37.dll
17316 INFO: Found binding redirects:
[]
17331 INFO: Warnings written to
C:\Users\user\Documents\Python\Documents\pickle_viewer\build\PickleViewer\
warn
-PickleViewer.txt
17397 INFO: Graph cross-reference written to
C:\Users\user\Documents\Python\Documents\pickle_viewer\build\PickleViewer\xre
f-PickleViewer.html
17499 INFO: checking PYZ
17501 INFO: Building because toc changed
17502 INFO: Building PYZ (ZlibArchive)
C:\Users\user\Documents\Python\Documents\pickle_viewer\build\PickleViewer\PYZ
-00.pyz
18467 INFO: Building PYZ (ZlibArchive)
C:\Users\user\Documents\Python\Documents\pickle_viewer\build\PickleViewer\
PYZ-
00.pyz completed successfully.
18499 INFO: checking PKG
18501 INFO: Building because
C:\Users\user\Documents\Python\Documents\pickle_viewer\build\PickleViewer\PYZ
-00.pyz changed
18502 INFO: Building PKG (CArchive) PKG-00.pkg
18549 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
18554 INFO: Bootloader c:\users\user\appdata\local\programs\python\python37-
32\lib\site-
packages\PyInstaller\bootloader\Windows-32bit\runw.exe
18554 INFO: checking EXE
18556 INFO: Building because console changed
18556 INFO: Building EXE from EXE-00.toc
18651 INFO: Copying icons from ['icon.ico']
18754 INFO: Writing RT_GROUP_ICON 0 resource with 20 bytes
18755 INFO: Writing RT_ICON 1 resource with 22767 bytes
19067 INFO: Appending archive to EXE
C:\Users\user\Documents\Python\Documents\pickle_viewer\build\PickleViewer\
Pick
leViewer.exe
19249 INFO: Building EXE from EXE-00.toc completed successfully.
19266 INFO: checking COLLECT
WARNING: The output directory
"C:\Users\user\Documents\Python\Documents\pickle_viewer\dist\PickleViewer"
and ALL ITS CONTENTS will be REMOVED! Continue? (y/N)y
21243 INFO: Removing dir
C:\Users\user\Documents\Python\Documents\pickle_viewer\dist\PickleViewer
21736 INFO: Building COLLECT COLLECT-00.toc
33512 INFO: Building COLLECT COLLECT-00.toc completed successfully.
我知道这个错误,“致命错误,执行脚本失败”
此错误是因为您将python脚本(.pyw not.py)编译为.exe格式,但该脚本中没有可用的GUI。因此,必须使用“py”扩展名(在Pyinstaller中,不要键入“-W”),或者使用PyGame、PyQT等
而且Tkinter与.pyw扩展不兼容,所以应该使用 PyGame或PyQt或其他大型GUI库
我想我找到了:
if getattr(sys, 'frozen', False): # we are running in a bundle frozen = 'ever so' bundle_dir = sys._MEIPASS else: # we are running in a normal Python environment bundle_dir = os.path.dirname(os.path.abspath(__file__))
编辑: 没有帮助
编辑(解决方案):
我通过ctypes隐藏了控制台。你知道吗
相关问题 更多 >
编程相关推荐