【问题标题】:Usabe of pyinstaller with openclpyinstaller 与 opencl 的使用
【发布时间】:2021-03-12 18:38:15
【问题描述】:

使用 pyinstaller 和 opencl 将 python 脚本转换为二进制文件的正确方法是什么?如何设置 name.spec 文件?在下面查看我的 pyinstaller 设置

用法:pyinstaller --clean --noconfirm --log-level=DEBUG --onefile --paths=/home/testuser/projects/tool --paths=/usr/local/lib/python3.8/dist -packages/pyopencl-2018.2.2-py3.8-linux-x86_64.egg --hidden-import=pyopencl --name=toolexe tool.py

【问题讨论】:

  • 您能描述一下您当前在使用该命令时遇到的问题吗?

标签: opencl pyinstaller


【解决方案1】:

在我的主脚本(myscript.py)中,我调用“import tool as *”,这是我的工具包,它在几个工具包脚本中调用“import pyopencl as cl”。当我在我的脚本上运行编译后的二进制版本时,我看到“pyopencl.init.py”被多次调用..(见下图) 我想知道是否是“tool as *”的相对导入,搞砸了二进制版本。注意:此代码确实可以作为 python 脚本代码。

#myscript -- "导入工具为 *" └── 工具
├── common.py ... #"import pyopencl as cl" ├── engine.py ... #"import pyopencl as cl" ├── traffic.py... #"import pyopencl as cl" ├── init.py

【讨论】:

    【解决方案2】:

    我在将 python 脚本转换为二进制时发现了两个问题

    1. python 脚本导入工具/tool.py 错误,不能有与其所在目录同名的导入脚本。

    2. 在 linux 中,转换为二进制时会出现线程警告。 https://docs.python.org/3/library/multiprocessing.html

    警告 'spawn' 和 'forkserver' 启动方法目前不能与 Unix 上的“冻结”可执行文件(即由 PyInstaller 和 cx_Freeze 等软件包生成的二进制文件)一起使用。 'fork' 启动方法确实有效

    【讨论】:

      猜你喜欢
      • 2016-12-16
      • 2018-07-22
      • 2019-08-06
      • 2013-02-01
      • 2011-04-29
      • 1970-01-01
      • 1970-01-01
      • 2023-02-18
      • 2011-07-10
      相关资源
      最近更新 更多