- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 python 3.7 和 cx_Freeze 5.1.1 ,我试图将我的 python 脚本转换为可执行文件,但我遇到了丢失模块错误,我被难住了。
我尝试将模块放入包中并包含安装脚本,但没有任何变化。
import sys
from cx_Freeze import setup, Executable
# Dependencies are automatically detected, but it might need fine tuning.
# build_exe_options = {"packages": ["os", "win32api", "win32con", "pywintypes", "easyguy", "ntsecuritycon"
# , "win32security", "errno", "shutil", "ctypes"], "excludes": ["tkinter"],
# "includes" = ['easy_gui']}
build_exe_options = {'packages': ['sys', "os", "win32api", "win32con",
"pywintypes", "easygui", "ntsecuritycon",
"errno", "shutil", "ctypes", "win32security",
"errno", "shutil", "ctypes"],
'excludes': ['tkinter'],
'includes': ["os", "win32api", "win32con", "pywintypes",
"easygui", "ntsecuritycon",
"errno", "shutil", "ctypes", "win32security",
"errno", "shutil", "ctypes"]}
# GUI applications require a different base on Windows (the default is for a
# console application).
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup(name="Automated Installer", # this will set the name of the created executable to "Automated Installer.exe"
version="0.1",
description="My GUI application!",
options={"build_exe": build_exe_options},
executables=[Executable("Automated Installer.py", base=base)]) # this tells cx_Freeze to freeze the script "Automated Installer.py"
我希望创建一个可执行文件,但我却抛出了这个错误\
ImportError: No module named 'win32api'
编辑 2:反射(reflect)下面发布的答案所采取的步骤。
我升级回 Python 3.7,并按照建议对 freeze.py 应用了修复。我采用了完全相同的 easygui 脚本,并在下面编写了相同的 setup.py 脚本。可执行文件会生成,但不会运行。我收到如下所示的错误。我能够很好地运行示例 easygui 脚本,因此我相信 easygui 已正确安装。
我不太确定完整堆栈跟踪是什么意思,但这里是我收到的命令提示符的一些值得注意的输出
Missing modules:
? __main__ imported from bdb, pdb
? _frozen_importlib imported from importlib, importlib.abc
? _frozen_importlib_external imported from importlib, importlib._bootstrap,
importlib.abc
? _posixsubprocess imported from subprocess
? _winreg imported from platform
? easygui imported from hello world__main__
? grp imported from shutil, tarfile
? java.lang imported from platform
? org.python.core imported from copy, pickle
? os.path imported from os, pkgutil, py_compile, tracemalloc, unittest,
unittest.util
? posix imported from os
? pwd imported from http.server, posixpath, shutil, tarfile, webbrowser
? termios imported from tty
? vms_lib imported from platform
This is not necessarily a problem - the modules may not be needed on this
platform.
running build
running build_exe
copying C:\Users\Billy\AppData\Local\Programs\Python\Python37\lib\site-
packages\cx_Freeze\bases\Win32GUI.exe -> build\exe.win-amd64-3.7\hello
world.exe
copying
C:\Users\Billy\AppData\Local\Programs\Python\Python37\python37.dll ->
build\exe.win-amd64-3.7\python37.dll
copying
C:\Users\Billy\AppData\Local\Programs\Python\Python37\VCRUNTIME140.dll ->
build\exe.win-amd64-3.7\VCRUNTIME140.dll
copying C:\Program Files\TortoiseGit\bin\api-ms-win-crt-runtime-l1-1-0.dll -
>
build\exe.win-amd64-3.7\api-ms-win-crt-runtime-l1-1-0.dll
copying C:\Program Files\TortoiseGit\bin\api-ms-win-crt-stdio-l1-1-0.dll ->
build\exe.win-amd64-3.7\api-ms-win-crt-stdio-l1-1-0.dll
copying C:\Program Files\TortoiseGit\bin\api-ms-win-crt-math-l1-1-0.dll ->
build\exe.win-amd64-3.7\api-ms-win-crt-math-l1-1-0.dll
copying C:\Program Files\TortoiseGit\bin\api-ms-win-crt-locale-l1-1-0.dll ->
build\exe.win-amd64-3.7\api-ms-win-crt-locale-l1-1-0.dll
copying C:\Program Files\TortoiseGit\bin\api-ms-win-crt-heap-l1-1-0.dll ->
build\exe.win-amd64-3.7\api-ms-win-crt-heap-l1-1-0.dll
*** WARNING *** unable to create version resource
install pywin32 extensions first
writing zip file build\exe.win-amd64-3.7\lib\library.zip
最佳答案
cx_Freeze
尚不支持 Python 3.7,它有一个错误。存在错误修复但尚未发布,但是您可以手动应用它,请参阅 What could be the reason for fatal python error:initfsencoding:unable to load the file system codec?和 Cx_freeze crashing Python3.7.0 。或者,如果您可以选择,您也可以回滚到 Python 3.6。编辑:
检查 easygui
是否已正确安装。例如,您应该能够从 easygui
documentation 运行以下 hello.py
示例脚本。 :
from easygui import *
import sys
# A nice welcome message
ret_val = msgbox("Hello, World!")
if ret_val is None: # User closed msgbox
sys.exit(0)
msg = "What is your favorite flavor?\nOr Press <cancel> to exit."
title = "Ice Cream Survey"
choices = ["Vanilla", "Chocolate", "Strawberry", "Rocky Road"]
while 1:
choice = choicebox(msg, title, choices)
if choice is None:
sys.exit(0)
msgbox("You chose: {}".format(choice), "Survey Result")
尝试卡住此示例脚本。 easygui
依赖于 tkinter
,它需要一些额外的调整才能使用 cx_Freeze
5.1.1 卡住,请参阅 tkinter program compiles with cx_Freeze but program will not launch 。您应该能够使用以下设置脚本卡住该示例:
from cx_Freeze import setup, Executable
import os
import sys
PYTHON_INSTALL_DIR = os.path.dirname(sys.executable)
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6')
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')
build_exe_options = {'include_files': [(os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tk86t.dll'),
os.path.join('lib', 'tk86t.dll')),
(os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tcl86t.dll'),
os.path.join('lib', 'tcl86t.dll'))]}
# GUI applications require a different base on Windows (the default is for a
# console application).
base = None
if sys.platform == 'win32':
base = 'Win32GUI'
setup(name='hello',
version='0.1',
description='Sample cx_Freeze EasyGUI script',
executables=[Executable('hello.py', base=base)],
options={'build_exe': build_exe_options})
关于python - cx_Freeze 缺少模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54542382/
我正在尝试编译一个 python 程序,我使用的是 python 3.2。所以我下载了 cx_freeze 并安装了它。当我尝试在 cmd 中运行 setup.py 时,它说: "importerro
我正在尝试将我的 python 3.4 程序转换为 exe 以供分发。我尝试使用 cx_Freeze 来做到这一点。但是,当我使用此 setup.py 运行 python setup.py build
我在使用 cx_Freeze-5.0.1-cp36-cp36m-win32.whl 将 python 3.6 编译为 exe 时遇到问题,请帮助我。 我已经从http://www.lfd.uci.ed
比方说 numpy_example.py是: import numpy as np a = np.array([1, 2, 3]) print(a) 使用 Python 2.7.9,使用 cxFree
我正在使用 python 3.7 和 cx_Freeze 5.1.1 ,我试图将我的 python 脚本转换为可执行文件,但我遇到了丢失模块错误,我被难住了。 我尝试将模块放入包中并包含安装脚本,但没
我正在尝试为 Python 3.3 安装 cx_Freeze。但是,在编译源代码时出现此错误 gcc -pthread build/temp.linux-i686-3.3/source/bases/C
tss.py --> 该文件包含一个打开另一个 python 文件 (dark.py) 的子进程 import subprocess as sp def process(): programN
所以我的 python 脚本依赖于我创建的另一个模块。该模块读取文本文件。当我从源代码运行并且一切正常时,脚本、模块和它读取的文件通常位于同一目录中。 我用cx_freeze编译,当我运行它时,导入的
我有一个应用程序,可以在运行时将一些内容打印到控制台。但作为独立的可执行文件不会在控制台上打印任何内容? setup.py 脚本如下所示: import sys from cx_Freeze impo
我尝试将我的(正常工作的)python 3.6 tkinter gui 应用程序构建为 Windows 可执行文件。经过几个小时的尝试,出现了一个错误(有一些名称和 dll 问题),我让它运行了。但它
目前我正在使用 pyinstaller 来捆绑我的 python 应用程序。我同样迁移到 pyGObject(由于 pygtk 被折旧)。 现在 pyinstaller 不支持 pyGObject 并
我正在使用 cx_freeze 模块来创建安装程序和可执行文件。这似乎工作正常,但在运行可执行文件时,我收到以下错误和回溯。 D:\>"app.exe" Traceback (most recent
我可以使用 cx_freeze 来打包我的 python 工具,但是无法加载我需要的库。由于某种原因,输出的可执行文件/二进制名称不断包含在路径中。 我收到以下错误: OSError:/home/de
我正在尝试从 python 脚本(使用大量鸡蛋)构建可执行文件(适用于 32 位 Windows xp) 我考虑过 py2exe(0.6.9)、PyInstaller (1.4) 和 cx_Freez
您好,我尝试在我的 Linux 上安装 cx_Freeze,但我无法安装。我想安装它以将我的 python 应用程序 (.py) 转换为可执行应用程序。 我从这个网站下载资源:https://sour
我选择尝试使用 cx_freeze,它将我的简单 python 3.x 键盘记录器转换为 exe。我选择 cx_freeze 因为 py2exe 只是 python 2.x 我正在使用这个 setup
Adter 使用 cx-freeze python 3.6 创建一个 exe,在 Windows 中工作正常,但在 Linux 中它运行无限次而不停止,即使我只输入 print('hello word
我制作了一个程序,它使用 os.startfile() 启动另一个 python 程序。 我想把它作为两个 exe 文件,通过使用 subprocess.call() 启动第二个文件,在 1 个构建文
我目前正在尝试制作 cx_freeze在我必须使用的 Solaris 工作站上工作,以便从我拥有的 Python 脚本生成可执行文件。问题是,我不是这台机器的管理员,安装cx_freeze请求写入站点
我在将内容包含到我的 cx_Freeze 脚本中时遇到了这个问题,我试图做的是包含 easygui 和 sys,因为我在我的程序中使用它们。任何帮助将不胜感激! 代码如下: import sys fr
我是一名优秀的程序员,十分优秀!