在PyInstaller中,为什么不将NumPy.Random.Common加载为模块?

时间:2019-07-30 04:46:03

标签: python windows numpy pyinstaller

我正在尝试使用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。

我希望它可以正常运行而不会出现任何问题。

7 个答案:

答案 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

Packages used

答案 2 :(得分:1)

在具有numpy==1.16.1pandas==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