簡體   English   中英

沒有名為 pyopencl (Py2exe) 的模塊

[英]No module named pyopencl (Py2exe)

嘗試從 Py2Exe 制作 .exe 時,我在使用 PyOpenCL 模塊時遇到了一些問題。 Py2Exe 按照它應該做的方式制作 .exe(這里沒有“ImportError:沒有名為 pyopencl 的模塊”),但是當我運行 .exe 時,它​​說沒有名為 pyopencl 的模塊。

我正在嘗試制作 Phoenix Miner 的 .exe。

我的 setup.py:

from distutils.core import setup
import py2exe, sys, os, pyopencl

sys.argv.append('py2exe')

setup(
    options = {'py2exe': {'bundle_files': 1,
                          "includes":["pyopencl","twisted",
                                      "zope","QueueReader",
                                      "numpy"]}},
    console=[{'script' : 'phoenix.py'}],
    data_files=["C:\\Users\\Nicklas\\Desktop\\Phoenix-Miner\\kernels\\poclbm\\kernel.cl"],
    zipfile = None,
)

我發現有人和我有同樣的問題http://bytes.com/topic/python/answers/848048-py2exe-module-error但沒有解決方案。

更新:我找到了導致此錯誤的原因。 在 pyopencl __init__有一個名為 _find_pyopencl_include_path 的函數,它的作用是不言自明的。 長話短說:imp 模塊無法找到 pyopencl 模塊。 為了解決這個問題,我注釋掉了該行並將路徑名設置為 pyopencls 包含目錄的路徑。 可能不是一個很好的修復。 但這是一個簡單的修復。

我找到了導致此錯誤的原因。 在 pyopencl __init__有一個名為_find_pyopencl_include_path的函數,它的作用是不言自明的。 長話短說: imp模塊無法找到pyopencl模塊。 為了解決這個問題,我注釋掉了該行並將路徑名設置為 pyopencls 包含目錄的路徑。 可能不是一個很好的修復。 但這是一個簡單的修復。

還有一種最簡單的方法是使用auto-py-to-exe模塊使 python 腳本可執行,它可以使用pip install auto-py-to-exe安裝,然后在 python 命令行中安裝 write auto-py-to-exe終端會出現一個窗口,選擇腳本位置並選擇OneFile而不是OneDirectory,這里我粘貼auto-py-to-exe窗口截圖auto-py-to-exe供參考在此處輸入圖片說明 轉換后將出現“打開輸出文件夾”選項,您將在其中獲取 python 腳本的 .exe 文件。 這個 .exe 文件可以在任何系統上運行而不使用 python。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM