簡體   English   中英

當我什至不使用 cython 時,為什么會出現“ModuleNotFoundError: No module named 'scipy.special.cython_special'”?

[英]Why do I have "ModuleNotFoundError: No module named 'scipy.special.cython_special'" when I don't even use cython?

我使用 pyinstaller 為 python 腳本生成可執行文件,在嘗試運行可執行文件時出現錯誤ModuleNotFoundError: No module named 'scipy.special.cython_special' 我不確定這是從哪里來的,或者如何解決它。 我的可執行文件接受一個參數並返回一個列表。 任何幫助表示贊賞!

凍結使用 scipy 版本 1.5.0 的程序后出現此錯誤,但我將版本更改為 1.4.1(我在早期的虛擬環境中使用過)並且錯誤消失了。

我遇到了同樣的錯誤,但不確定是什么原因導致它或為什么 pyinstaller 找不到該依賴項,但您可以通過將“scipy.special.cython_special”添加到您的 pyinstaller myapp.spec 文件來修復它,如下所示:

a = Analysis(['/Users/Name/path/to/mystartupfile.py'],
             pathex=['/Users/Name/...'],
             binaries=[],
             datas=[('data')],
             hiddenimports=['scipy.special.cython_special'],
             hookspath=['/Users/Name..../hooks'],
             runtime_hooks=[],
             excludes=['IPython', 'FixTk', 'tcl', 'tk', '_tkinter', 'tkinter', 'Tkinter'],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)

我剛剛通過將cython_special.cp37-win_amd64.pyd文件從MyEnv>Lib>site-packages>scipy>special到已編譯的 pyinstaller 程序的同一目錄中來解決了這個問題。

我遇到了同樣的問題,原來我使用的是 Pyinstaller 不支持的 Python 3.8。 嘗試使用 3.7。

我也有這個問題。

正如@profTC所說,將scipy package 降級到 1.4.1 解決了這個問題。

或者,可以升級到PyInstaller 4.0,他們添加了一個新的鈎子文件來處理這個問題。 請參閱: https://pyinstaller.readthedocs.io/en/v4.0/CHANGES.html#hooks

另一種解決方案是使用 PyInstaller 構建時直接復制掛鈎文件並將其作為附加掛鈎包含在內。

--hidden-import="scipy.special.cython_special"添加到您的 pyinstaller 命令中。

暫無
暫無

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

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