python - 获取 AttributeError:运行 cx_Freeze 可执行文件时,模块“tensorflow_estimator.python.estimator.api.estimator”没有属性“__file__”
问题描述
我正在尝试编译这个 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
但是当我运行可执行文件时,标题中出现错误。我什至尝试重新安装每个 tensorflow 包,但没有结果。我正在研究虚拟环境。
完整日志:
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__'
解决方案
尝试添加到逗号tensorflow
分隔的列表中tensorflow_estimator
。keras
--include-modules
或者尝试使用distutils 设置脚本并将和tensorflow
可能添加到选项列表中。tensorflow_estimator
keras
packages
build_exe
推荐阅读
- pyspark - Py4JJavaError - 在 Dataproc 中提交 PySpark 作业时出错
- variables - 如何将变量用于不同的功能?
- c++ - 从数组 C++ 中删除重复项
- c# - ASP.NET Core 2.1 在 Startup.cs 中获取当前的 Web 主机名和端口
- java - JavaFX Java 11 及更高版本
- c++ - 如何实例化一个长度使用模板函数中的模板参数的数组
- reactjs - react-admin 中 MenuItemLink 的 primaryText 没有翻译
- git - 平分错误提交
- windows - CryptProtectData 函数的 CRYPTPROTECT 标志
- node.js - 如何将 TVP 中的缓冲区数据从 node.js 传递到 lambda 中的 sql server?