Получение AttributeError: модуль 'tenorflow_estimator.python.estimator.api.estimator' не имеет атрибута __file__ при запуске исполняемого файла cx_Freeze - PullRequest
0 голосов
/ 09 марта 2019

Я пытаюсь скомпилировать этот скрипт на python:

from keras import optimizers
from keras.models import Sequential
from keras.models import model_from_json


from keras.layers import Dense, Flatten

import time
import tkinter
import cv2
import PIL.Image, PIL.ImageTk
from matplotlib import pyplot as plt
import numpy as np
import pickle
from pathlib import Path

import threading

input("waiting for input")
exit()

Используя этот скрипт:

cxfreeze test.py --target-dir dist --include-modules=numpy.core._methods,numpy.lib.format,tensorflow.python.tf2,tensorflow.python.tools.component_api_helper

Но я получаю ошибку в заголовке при запуске исполняемого файла.Я даже пытался переустановить каждый пакет tenorflow безрезультатно.Я работаю в виртуальной среде.

Полный журнал:

davidaffo@davidaffo-TM1701:~/PycharmProjects/EyeTracker$ source ./venv/bin/activate
(venv) davidaffo@davidaffo-TM1701:~/PycharmProjects/EyeTracker$ ./dist/test
Using TensorFlow backend.
Traceback (most recent call last):
  File "/home/davidaffo/PycharmProjects/EyeTracker/venv/lib/python3.6/site-packages/cx_Freeze/initscripts/__startup__.py", line 14, in run
    module.run()
  File "/home/davidaffo/PycharmProjects/EyeTracker/venv/lib/python3.6/site-packages/cx_Freeze/initscripts/Console.py", line 26, in run
    exec(code, m.__dict__)
  File "test.py", line 1, in <module>
    from keras import optimizers
  File "/home/davidaffo/PycharmProjects/EyeTracker/venv/lib/python3.6/site-packages/keras/__init__.py", line 3, in <module>
    from . import utils
  File "/home/davidaffo/PycharmProjects/EyeTracker/venv/lib/python3.6/site-packages/keras/utils/__init__.py", line 6, in <module>
    from . import conv_utils
  File "/home/davidaffo/PycharmProjects/EyeTracker/venv/lib/python3.6/site-packages/keras/utils/conv_utils.py", line 9, in <module>
    from .. import backend as K
  File "/home/davidaffo/PycharmProjects/EyeTracker/venv/lib/python3.6/site-packages/keras/backend/__init__.py", line 89, in <module>
    from .tensorflow_backend import *
  File "/home/davidaffo/PycharmProjects/EyeTracker/venv/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py", line 5, in <module>
    import tensorflow as tf
  File "/home/davidaffo/PycharmProjects/EyeTracker/venv/lib/python3.6/site-packages/tensorflow/__init__.py", line 29, in <module>
    from tensorflow._api.v1 import compat
  File "/home/davidaffo/PycharmProjects/EyeTracker/venv/lib/python3.6/site-packages/tensorflow/_api/v1/compat/__init__.py", line 21, in <module>
    from tensorflow._api.v1.compat import v1
  File "/home/davidaffo/PycharmProjects/EyeTracker/venv/lib/python3.6/site-packages/tensorflow/_api/v1/compat/v1/__init__.py", line 626, in <module>
    child_package_str=('tensorflow_estimator.python.estimator.api.estimator'))
  File "/home/davidaffo/PycharmProjects/EyeTracker/venv/lib/python3.6/site-packages/tensorflow/python/tools/component_api_helper.py", line 85, in package_hook
    set_child_as_subpackage()
  File "/home/davidaffo/PycharmProjects/EyeTracker/venv/lib/python3.6/site-packages/tensorflow/python/tools/component_api_helper.py", line 69, in set_child_as_subpackage
    os.path.join(os.path.dirname(child_pkg.__file__), ".."))]
AttributeError: module 'tensorflow_estimator.python.estimator.api.estimator' has no attribute '__file__'

1 Ответ

0 голосов
/ 11 марта 2019

Попробуйте добавить к tensorflow и, возможно, tensorflow_estimator и keras в список --include-modules, разделенный запятыми.

Или попробуйте использовать скрипт установки distutils и добавить tensorflow и, возможно, tensorflow_estimator и keras в список packages опции build_exe.

...