gpt4 book ai didi

python - 在 Python 中构建安装脚本时出错

转载 作者:太空狗 更新时间:2023-10-30 02:43:47 26 4
gpt4 key购买 nike

我有下一个案例:

  1. 使用 Python + PySide 的桌面应用程序
  2. 想在我的应用程序中使用 PYD 文件 (mycore.pyd)
  3. 在 mycore.pyx 文件中有一个对 Padding 模块的依赖
    • 这个Padding模块已经安装到系统中
  4. 我构建 Setup.py 并将 PYX 文件转换为我在应用程序中使用的 PYD 文件

我得到的:

  • 一旦我在 PyCharm 下运行我的应用程序 => 一切正常
  • 当我使用 PyInstaller 方法构建应用程序并从 cmd 运行应用程序时 => 我发现错误“没有命名模块填充(请求等)”

setup.py 文件示例:

from distutils.core import setup
from Cython.Build import cythonize


extensions = ["mycore.pyx"]

setup(
name='mycore',
version='1.0',
ext_modules=cythonize(extensions),
#packages=['Padding'], - once tried => "error: package directory 'Padding' does not exist"
)

任何想法或建议都会很棒!

更新

还尝试了 setup_tools 的变体,也没有成功:

from Cython.Build import cythonize
from setuptools import setup, find_packages, Extension, Command


setup(name='mycore',
packages = find_packages(),
version=1.0,
include_package_data=True,
platforms=['all'],
ext_modules=[Extension("mycore", ['mycore.c'])],
#extra_require = {"Padding"} - also nothing
)

最佳答案

要求 PyInstaller 在构建过程中包含所需的模块。似乎最简单的方法是使用 --hidden-import参数:

--hidden-import=modulename
Name an imported Python module that is not visible in your code. The module will be included as if it was named in an import statement. This option can be given more than once.

因此,请在构建应用程序时添加以下参数:

--hidden-import=Padding


编辑:

尝试在单独的 *.py 文件中导入所有必需的模块(触发错误),而不是在 *.pyx\*.pyd 中 文件。这是一个丑陋的解决方法,但仍然可以解决问题。

考虑在这种情况下使用 __init__.py 文件。

关于python - 在 Python 中构建安装脚本时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32024554/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com