最近,我从Shiboken2中遇到了一个导入错误,这是我以前在可执行文件中没有的。我在PyCharm中构建了一个应用程序,并使用CX_Freeze为其构建了一个.exe。我已经尝试过每一个最新版本的Python,但我现在100%的自信,它不是Python的版本,而是问题所在。特别是,由于应用程序在运行源代码时运行得很好,但是当我使用Setup.py脚本构建它时,我在尝试运行它时一直会遇到以下问题:
下面是我的Setup.py脚本的外观:
import sys
import os
from cx_Freeze import setup, Executable
sys.path.append(os.path.abspath("./src/"))
sys.path.append(os.path.abspath("./src/gui/rc/"))
sys.path.append(os.path.abspath("./database/component_actions"))
# Dependencies are automatically detected, but it might need
# fine tuning.
buildOptions = {
"packages": [
# Facile sub-packages
"src.gui",
"src.qt_models",
"src.data",
"src.libs",
"src.tguiil",
"src.graphics",
"src.tools",
],
"includes": ["scipy.sparse.csgraph._validation",
"scipy.ndimage._ni_support",
"scipy._distributor_init",
],
"include_files": ["database/",
"src/tguiil/",
"src/data/"
],
"excludes": ["scipy.spatial.cKDTree",
]
}
installOptions = {"skip_build":True}
base = None
# Uncomment for GUI applications to NOT show cmd window while running.
if sys.platform =='win32':
base = 'Win32GUI'
executables = [
Executable(script = 'src/facile.py', base=base, targetName = 'facile.exe', icon = 'resources/facade_logo_256.ico')
]
setup(name='***',
version = '***',
description = '***',
options = {
"build_exe": buildOptions,
"install_exe": installOptions,
},
executables = executables)
(对不起,我想隐藏一些信息,所以我使用*)
问题开始时,:我将Shiboken 2更新为5.15.0版本,但我知道我需要更新Pyside2,所以我不明白这个更新的包是如何影响我的可执行构建的。
如果需要的话,我可以显示我的所有依赖项,但我不认为这是个问题,因为正如我之前所说的,当我在PyCharm上运行源代码时,只有当我构建可执行文件并尝试运行它时,我才会遇到这个问题。也许这是路径问题?还是需要在setup.py中包含一些依赖项?我使用的是一个虚拟环境,Python3.7.4 32位作为解释器.
发布于 2020-07-08 07:07:10
我相信这个问题源于我所处的环境。我并没有一个坚定的答案,因为我做了很多事情,如下所示:
folder.
中所有必要的依赖项。
我确保给PyCharm足够的时间在每一步之间思考(加载),一旦我完成,我构建了可执行文件,并且它正确运行。
我希望这对遇到类似问题的人有帮助。
https://stackoverflow.com/questions/62533766
复制相似问题