【问题标题】:PyInstaller error when running exe with TensorFlow2 and Tkinter libraries使用 TensorFlow2 和 Tkinter 库运行 exe 时出现 PyInstaller 错误
【发布时间】:2020-05-24 12:53:29
【问题描述】:

我在 Tkinter 上有一个使用 TensorFlow2 库的小应用程序。我正在运行pyinstaller main2.py 并且项目已成功构建,但是当您通过控制台运行它时,您会得到以下信息:

C:\Users\pikro\PycharmProjects\NeuralStyleTransfer\dist\main2>main2.exe
2020-05-24 15:48:27.175935: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found
2020-05-24 15:48:27.180194: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
c:\users\pikro\anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py:489: MatplotlibDeprecationWarning:
The MATPLOTLIBDATA environment variable was deprecated in Matplotlib 3.1 and will be removed in 3.3.
  exec(bytecode, module.__dict__)
Traceback (most recent call last):
  File "main2.py", line 2, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "c:\users\pikro\anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 489, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\tensorflow\__init__.py", line 48, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "c:\users\pikro\anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 489, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\tensorflow\_api\v2\compat\__init__.py", line 39, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "c:\users\pikro\anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 489, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\tensorflow\_api\v2\compat\v1\__init__.py", line 34, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "c:\users\pikro\anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 489, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\tensorflow\_api\v2\compat\v1\compat\__init__.py", line 39, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "c:\users\pikro\anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 489, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\tensorflow\_api\v2\compat\v1\compat\v1\__init__.py", line 51, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "c:\users\pikro\anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 489, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\tensorflow\_api\v2\compat\v1\lite\__init__.py", line 11, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "c:\users\pikro\anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 489, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\tensorflow\_api\v2\compat\v1\lite\experimental\__init__.py", line 10, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "c:\users\pikro\anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 489, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\tensorflow\_api\v2\compat\v1\lite\experimental\nn\__init__.py", line 10, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "c:\users\pikro\anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 489, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\tensorflow\lite\python\lite.py", line 35, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "c:\users\pikro\anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 489, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\tensorflow\lite\experimental\microfrontend\python\ops\audio_microfrontend_op.py", line 30, in <module>
  File "site-packages\tensorflow\python\framework\load_library.py", line 58, in load_op_library
tensorflow.python.framework.errors_impl.NotFoundError: C:\Users\pikro\PycharmProjects\NeuralStyleTransfer\dist\main2\tensorflow\lite\experimental\microfrontend\python\ops\_audio_microfrontend_op.so not found
[9892] Failed to execute script main2

我该如何解决这个错误?

我的进口:

from tkinter import *
import tensorflow as tf
import tensorflow_hub as hub
import numpy as np
import PIL.Image

【问题讨论】:

  • 看起来你的脚本应该从C:\Users\pikro\PycharmProjects\NeuralStyleTransfer\dist\main2\tensorflow\lite\experimental\microfrontend\python\ops\_audio_microfrontend_op.so路径上的文件中获取一些数据,但它没有,并且抛出异常
  • 然后该怎么办?
  • 将所需文件插入到位,一切正常
  • 我应该去哪里找他?在我的 tensorflow 文件夹中只有 python 文件夹
  • 这里C:\Users\pikro\PycharmProjects\NeuralStyleTransfer\dist\main2\tensorflow\lite\experimental\microfrontend\python\ops\_audio_microfrontend_op.so

标签: python python-3.x tkinter pyinstaller tensorflow2.0


【解决方案1】:

我创建了新的 conda env,安装了 tensorflow v2.1.0,创建了一个文件 hook-tensorflow.py 并将其移至 PyInstaller

【讨论】:

  • 发布hook-tensorflow.py的内容
  • from PyInstaller.utils.hooks import collect_all def hook(hook_api): packages = [ 'tensorflow', 'tensorflow_core', 'astor' ] for package in packages: datas, binaries, hiddenimports = collect_all(package) hook_api.add_datas(datas) hook_api.add_binaries(binaries) hook_api.add_imports(*hiddenimports)
猜你喜欢
  • 2018-10-07
  • 2020-02-27
  • 1970-01-01
  • 2019-05-07
  • 2021-04-22
  • 1970-01-01
  • 1970-01-01
  • 2016-12-26
  • 2022-07-19
相关资源
最近更新 更多