【问题标题】:Shiboken2 ... ImportError: DLL load failed: The specified procedure could not be foundShiboken2 ... ImportError:DLL加载失败:找不到指定的程序
【发布时间】: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


    【解决方案1】:

    我相信这个问题源于我的环境。我真的没有一个坚定的答案,因为我按此顺序做了很多事情,如下所示:

    1. 下载 PyCharm 2020 并删除 PyCharm 2019。
    2. 删除了我过去的所有 Python 包/可执行文件/依赖项,删除了旧的虚拟环境和旧的构建文件夹。
    3. 重新安装 Python 3.7.4 并检查 PATH 选项卡。
    4. 通过 PyCharm 2020 的 IDE 在虚拟环境中添加了 Python 3.7.4 的 Python 解释器。
    5. Pip 从我的 requirements.txt 中安装了所有必要的依赖项。

    我确保在每个步骤之间给 PyCharm 足够的时间来思考(加载),一旦完成,我就构建了可执行文件并正确运行。

    我希望这对遇到类似问题的人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-16
      • 2013-12-10
      • 2019-03-18
      • 2016-08-19
      • 2016-08-22
      • 2018-10-23
      • 2020-04-18
      相关资源
      最近更新 更多