当前位置: 首页 > 知识库问答 >
问题:

在PyInstaller中,为什么不使用NumPy。随机的作为模块的公共负载?

轩辕啸
2023-03-14

我正在试着编一份报告。将html" target="_blank">程序复制到Windows中。exe使用PyInstaller。每当我试图执行命令时。exe时,终端打开,然后快速关闭,出现以下错误:

重要错误:无法导入所需的依赖项:Numpy:没有名为'numpy.random.common'的模块

我没有明确地进口Numpy;它是由熊猫进口的。

我还收到了一长串关于pyinstaller的警告日志中无法加载的模块的警告。

我尝试在我的. spec文件中添加hidden进口=['numpy.random.common'],我尝试运行'pyInster[file]. py-F-隐藏-进口="numpy.random.common"。我已经阅读了其他stackoverflow帖子关于pyInster和hidden进口,但似乎没有什么可以修复这个错误。

我使用的是虚拟环境,所以我不确定这是否起了作用。

这是我的。规格文件

# -*- 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.也不是

我希望它能正常运行,没有任何问题。

共有3个答案

孟哲
2023-03-14

在我的环境中,numpy==1.16。1pandas==0.24。1我没有numpy。随机的通用

如果您尝试从python控制台导入它,它会工作吗?

可能尝试升级/降级pandas(pip install pandas==0.24.1)。

牟焱
2023-03-14

我可以把它从1.17.0降级到1.16.2。在所附的图片中,您可以看到相关的熊猫,Numpy和我使用的其他软件包。

pip uninstall numpy
pip install numpy==1.16.2

使用的包

微生智刚
2023-03-14

通过在导入熊猫之前添加三个导入解决了此问题。

import numpy.random.common
import numpy.random.bounded_integers
import numpy.random.entropy

PyInstaller似乎丢失了这些库的路径。。。然后,我在命令行中写道:

pyinstaller install -n APP_NAME -c --clean SCRIPT_NAME.py

这对我很有效。

 类似资料:
  • 问题内容: 我正在建模黎曼θ函数: 它对否定无效; 例如导致此错误: 为什么?应该只是如果我正确地记得我的数学。 问题答案: 在NumPy中,用于选择类似操作的输出dtype的逻辑基于dtype,而不是值。这意味着必须具有与相同的输出dtype 。 给出整数输出之类的东西很重要,这意味着必须给出整数或什么都不给出。他们什么也没捡。将整数提高为负整数幂是NumPy中的错误。 如果要浮点输出,请进行浮

  • Plagiarize, plagiarize, plagiarize / Only be sure always to call it, please research. Lobachevsky — Tom Lehrer 如果你对自己编制的代码有疑问,使用他人的吧。在许多情况下, 当你要写一个 Puppet 模块来管理一些软件或服务时,不必从头开始编写。 对许多流行的应用程序,在 Puppet F

  • 问题内容: 我有一个应用程序,要求给定相同的随机种子,结果相同。但是我发现random.randint不是线程安全的。我已经尝试过互斥锁,但这不起作用。这是我的实验代码(很长但很简单): 我想编码打印 true,true ,但是它有机会给出 false,false 。如何制作线程安全的randint? 问题答案: 其他人指出了以线程安全方式使用的正确方法。但是我觉得必须指出,您编写的代码对任何内容

  • 我用Kivyin Pycharm构建了pong游戏,并希望将其导出为一个独立的.exe。我尝试了Pyinstaller,结果出现了这样的情况: 41727警告:找不到库:C:\users\Utilizador\PycharmProjects\PythonProjects\Venv\lib\Site-Packages\Pywin32_System32\PywinTypes39.dll 42028警告

  • 问题内容: 我很好奇,为什么是方法的公开? 此方法从调用它的位置替换原始堆栈跟踪,从而删除了定位异常所需的信息。它可以用于混淆,但无需付出太多努力,因为新的堆栈跟踪将直接指向混淆代码。更好的方法是简单地隐藏异常或抛出新异常。 但是我找不到在现存的上调用此方法的 合理 理由。所以问题是:为什么这种方法是公开的?后面有什么意义吗? 问题答案: 原因之一是性能。抛出和捕获异常很便宜;昂贵的部分是填充堆栈

  • 我发现了许多对次要Tkinter依赖项的引用,比如导入Tkinter itslef的matplotlib,但我没有发现类似这样的直接依赖项的任何细节。 你有什么办法让这个工作吗?