【发布时间】:2020-10-13 10:56:54
【问题描述】:
我最近遇到了来自 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 上运行源代码时,它才能正常工作,只有当我构建可执行文件并尝试运行它时才会这样做我有这个问题。也许这是一个PATH问题?或者我需要在 setup.py 中包含一些依赖项? 顺便提一句。我正在使用带有 Python 3.7.4 32 位的虚拟环境作为解释器。
【问题讨论】:
标签: exe python-3.7 importerror cx-freeze shiboken2