繁体   English   中英

导入错误:pandas pyinstaller 中没有名为“distutils”的模块

[英]ImportError: No module named 'distutils' in pandas pyinstaller

我已经通过 pyinstaller 创建了一个可执行文件。 在运行 exe 时发现了熊猫的错误​​。

Traceback (most recent call last):
  File "score_python.py", line 3, in <module>
    import pandas as pd, numpy as np
  File "d:\virtual\sc\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\pandas\__init__.py", line 23, in <module>
  File "d:\virtual\sc\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\pandas\compat\__init__.py", line 32, in <module>
ImportError: No module named 'distutils'

有没有人发现同样的?

这是 16.4.0 版本以后的 virtualenv 的问题,如 github 上的以下问题所示: https : //github.com/pyinstaller/pyinstaller/issues/4064

建议采用以下变通方法:

  1. 在 .spec 文件中的“hiddenimports=[]”行中,更改为“hiddenimports=['distutils']”,然后使用 spec 文件运行 pyinstaller。

    试过这个,但它在我的情况下不起作用,现在可以找到 distutils 模块,但是在导入模块时它抛出了一个错误。

  2. 将 virtualenv 降级到早期版本。

    我将 virtualenv 降级到 16.1.0 版并重新创建了执行包。 在我的情况下,新的执行文件工作正常。

找到解决方案,这是因为虚拟环境。

由于在创建项目时创建了新的虚拟环境而发生错误。 我已经删除了我现有的虚拟并通过设置 python 解释器并选择pre-existing interpreter选项创建了新的虚拟。

IDE 将创建一个名为venv的虚拟并将所有 python 文件从 Python/bin 复制到此文件夹,然后从这里导入模块,通过激活解决了我的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM