我正在尝试使用PyInstaller将.py程序编译为Windows .exe。每当我尝试执行.exe时,终端就会打开,然后迅速关闭并显示错误:
ImportError: Unable to import required dependencies:
numpy: No module named 'numpy.random.common'
我没有显式导入numpy;它是由熊猫进口的。
我还获得了关于无法在pyinstaller的警告日志中加载的模块的警告列表。
我尝试在.spec文件中添加hiddenimports=['numpy.random.common']
,并尝试运行`pyinstaller [file] .py -F --hidden-import =“ numpy.random.common”。我已经阅读了有关pyinstaller和hiddenimports的其他stackoverflow帖子,但似乎没有什么可以解决此错误。
我正在使用虚拟环境,所以不确定是否在发挥作用。
这是我的.spec文件
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['getNewPropertiesLabels.py'],
pathex=['C:\\Users\\[user name]\\OneDrive\\Documents\\Consulting\\[file name]'],
binaries=[],
datas=[],
hiddenimports=['numpy.random.common'],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='Name',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True')
我的警告文件导致帖子过长,但是numpy.random.common实际上并未列为缺少的模块。也不是numpy.random。
我希望它可以正常运行而不会出现任何问题。
答案 0 :(得分:7)
通过在import pandas
之前添加三个导入来解决此问题。
import numpy.random.common
import numpy.random.bounded_integers
import numpy.random.entropy
似乎PyInstaller失去了这些库的路径... 然后,在命令行中,我写道:
pyinstaller install -n APP_NAME -c --clean SCRIPT_NAME.py
对我有用。
答案 1 :(得分:5)
我可以修复将numpy从1.17.0降级到1.16.2的问题。在所附的图像中,您可以看到相关的熊猫,numpy和我使用过的其他软件包。
pip uninstall numpy
pip install numpy==1.16.2
答案 2 :(得分:1)
在具有numpy==1.16.1
和pandas==0.24.1
的环境中,我没有numpy.random.common
如果您尝试从python控制台导入它,它可以工作吗?
也许尝试升级/降级熊猫(pip install pandas==0.24.1
)。
答案 3 :(得分:0)
就在昨天,我一直在努力解决同样的问题。
首先,我遇到了ssl
模块的问题,然后遇到了numpy.random
的问题,以及其他未正确加载的模块的列表...
请查看我的问题here,并在下面的答案中列出了为解决该问题而做的许多事情。
让我知道问题是否可以通过这种方法解决,因为我无法确定解决问题的确切步骤。 (我相信这是所有因素的结合)。
答案 4 :(得分:0)
我有几个小时要解决的相同问题! this trick虽然对我不起作用,但我建议您尝试一下,将numpy和pandas降级解决了由熊猫消失引起的“ import numpy问题”。.仅是因为现在找不到pandas! (尽管我在隐藏的进口项下指定了熊猫)
答案 5 :(得分:0)
在我的隐藏导入中添加“ numpy.random.common”,“ numpy.random.bounded_integers”和“ numpy.random.entropy”对我来说很有效。
答案 6 :(得分:0)
我没有安装numpy的问题
在安装numpy之后,它可以正常工作
pip install numpy