I am using TensorFlow in a Python script that I am trying to freeze. Everything builds fine, but when I try to run it, I get this error:
Traceback (most recent call last):
File "C:\Users\mthun\AppData\Local\Programs\Python\Python35\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 14, in run
module.run()
File "C:\Users\mthun\AppData\Local\Programs\Python\Python35\lib\site-packages\cx_Freeze\initscripts\Console.py", line 26, in run
exec(code, m.__dict__)
File "app.py", line 2, in <module>
File "D:\code\Github\codes-at-home\retrain.py", line 16, in <module>
import tensorflow as tf
File "C:\Users\mthun\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\__init__.py", line 24, in <module>
from tensorflow.python import *
File "C:\Users\mthun\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\__init__.py", line 52, in <module>
from tensorflow.core.framework.graph_pb2 import *
File "C:\Users\mthun\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\core\framework\graph_pb2.py", line 6, in <module>
from google.protobuf import descriptor as _descriptor
ImportError: No module named 'google'
I have two other local Python files that I import in my main script as modules. They both import TensorFlow. The app works completely fine when not frozen.
Here is my setup.py:
import sys
import os
from cx_Freeze import setup, Executable
PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6')
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')
# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = {
"packages": ["os"],
'include_files': [
'MISTER-BRAINWASH.ico',
os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tk86t.dll'),
os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tcl86t.dll')
],
"includes":['retrain','label_image','numpy.core._methods', 'numpy.lib.format']
}
# GUI applications require a different base on Windows (the default is for a console application).
base = None
executables = [
Executable("app.py", base=base, icon='MISTER-BRAINWASH.ico'),
]
setup(
name="Taxon",
version="0.1",
description="retrain inception with a GUI",
options={"build_exe": build_exe_options},
executables=executables
)
I looked and google
is indeed in my TensorFlow includes in the build directory. I'm running on Windows using Python 3.5.2 64 bit and TensorFlow 1.5.0
No module named 'google'
To import google or anything from google there must be a __init__.py
file in the google directory.
Create that file in google directory and you can import from it.
I had same exact problem.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With