I want to build Tensorflow with TensorRT support with Bazel from source.
System specifications:
- Tensorflow 2.7
- Python 3.8.0
- CUDA 11.5
- Ubuntu 18.04
- Geforce RTX 2060
I tried the following bazel versions: 3.7.2, 4.2.1, 4.2.2 and all threw the same error.
It starts the building process but then throws the following 2 errors regarding the BUILD file:
ERROR: /home/ros/.cache/bazel/_bazel_ros/f58d1d645696850c769c1c78103710da/external/local_config_python/BUILD:78:8: declared output 'external/local_config_python/*.*' was not created by genrule. This is probably because the genrule actually didn't create this output, or because the output was a directory and the genrule was run remotely (note that only the contents of declared file outputs are copied from genrules run remotely)
ERROR: /home/ros/.cache/bazel/_bazel_ros/f58d1d645696850c769c1c78103710da/external/local_config_python/BUILD:78:8: not all outputs were created or valid
Target //tensorflow/tools/pip_package:build_pip_package failed to build
Here is the BUILD file from which the error occurs
licenses(["restricted"])
package(default_visibility = ["//visibility:public"])
load("@bazel_tools//tools/python:toolchain.bzl", "py_runtime_pair")
py_runtime(
name = "py2_runtime",
interpreter_path = "/home/ros/tfenv/bin/python3",
python_version = "PY2",
)
py_runtime(
name = "py3_runtime",
interpreter_path = "/home/ros/tfenv/bin/python3",
python_version = "PY3",
)
py_runtime_pair(
name = "py_runtime_pair",
py2_runtime = ":py2_runtime",
py3_runtime = ":py3_runtime",
)
toolchain(
name = "py_toolchain",
toolchain = ":py_runtime_pair",
toolchain_type = "@bazel_tools//tools/python:toolchain_type",
target_compatible_with = [],
exec_compatible_with = [],
)
cc_import(
name = "python_lib",
interface_library = select({
":amd64": ":python_import_lib",
# A placeholder for Unix platforms which makes --no_build happy.
"//conditions:default": "not-existing.lib",
}),
system_provided = 1,
)
cc_library(
name = "python_headers",
hdrs = [":python_include"],
deps = select({
":amd64": [":python_lib"],
"//conditions:default": [],
}),
includes = ["python_include"],
)
alias(
name = "headers",
actual = ":python_headers",
)
cc_library(
name = "numpy_headers",
hdrs = [":numpy_include"],
includes = ["numpy_include"],
)
config_setting(
name = "amd64",
values = {"cpu": "amd64"},
visibility = ["//visibility:public"],
)
genrule(
name = "python_include",
outs = [
"*.*"
],
cmd = """
""",
)
genrule(
name = "numpy_include",
outs = [
"numpy_include/numpy/__multiarray_api.h",
"numpy_include/numpy/__ufunc_api.h",
"numpy_include/numpy/_neighborhood_iterator_imp.h",
"numpy_include/numpy/_numpyconfig.h",
"numpy_include/numpy/arrayobject.h",
"numpy_include/numpy/arrayscalars.h",
"numpy_include/numpy/halffloat.h",
"numpy_include/numpy/libdivide/LICENSE.txt",
"numpy_include/numpy/libdivide/libdivide.h",
"numpy_include/numpy/multiarray_api.txt",
"numpy_include/numpy/ndarrayobject.h",
"numpy_include/numpy/ndarraytypes.h",
"numpy_include/numpy/noprefix.h",
"numpy_include/numpy/npy_1_7_deprecated_api.h",
"numpy_include/numpy/npy_3kcompat.h",
"numpy_include/numpy/npy_common.h",
"numpy_include/numpy/npy_cpu.h",
"numpy_include/numpy/npy_endian.h",
"numpy_include/numpy/npy_interrupt.h",
"numpy_include/numpy/npy_math.h",
"numpy_include/numpy/npy_no_deprecated_api.h",
"numpy_include/numpy/npy_os.h",
"numpy_include/numpy/numpyconfig.h",
"numpy_include/numpy/old_defines.h",
"numpy_include/numpy/oldnumeric.h",
"numpy_include/numpy/random/bitgen.h",
"numpy_include/numpy/random/distributions.h",
"numpy_include/numpy/ufunc_api.txt",
"numpy_include/numpy/ufuncobject.h",
"numpy_include/numpy/utils.h",
],
cmd = """
cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/__multiarray_api.h" "$(@D)/numpy_include/numpy/__multiarray_api.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/__ufunc_api.h" "$(@D)/numpy_include/numpy/__ufunc_api.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/_neighborhood_iterator_imp.h" "$(@D)/numpy_include/numpy/_neighborhood_iterator_imp.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/_numpyconfig.h" "$(@D)/numpy_include/numpy/_numpyconfig.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h" "$(@D)/numpy_include/numpy/arrayobject.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayscalars.h" "$(@D)/numpy_include/numpy/arrayscalars.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/halffloat.h" "$(@D)/numpy_include/numpy/halffloat.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/libdivide/LICENSE.txt" "$(@D)/numpy_include/numpy/libdivide/LICENSE.txt" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/libdivide/libdivide.h" "$(@D)/numpy_include/numpy/libdivide/libdivide.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/multiarray_api.txt" "$(@D)/numpy_include/numpy/multiarray_api.txt" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h" "$(@D)/numpy_include/numpy/ndarrayobject.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h" "$(@D)/numpy_include/numpy/ndarraytypes.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/noprefix.h" "$(@D)/numpy_include/numpy/noprefix.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h" "$(@D)/numpy_include/numpy/npy_1_7_deprecated_api.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/npy_3kcompat.h" "$(@D)/numpy_include/numpy/npy_3kcompat.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/npy_common.h" "$(@D)/numpy_include/numpy/npy_common.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/npy_cpu.h" "$(@D)/numpy_include/numpy/npy_cpu.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/npy_endian.h" "$(@D)/numpy_include/numpy/npy_endian.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/npy_interrupt.h" "$(@D)/numpy_include/numpy/npy_interrupt.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/npy_math.h" "$(@D)/numpy_include/numpy/npy_math.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/npy_no_deprecated_api.h" "$(@D)/numpy_include/numpy/npy_no_deprecated_api.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/npy_os.h" "$(@D)/numpy_include/numpy/npy_os.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/numpyconfig.h" "$(@D)/numpy_include/numpy/numpyconfig.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/old_defines.h" "$(@D)/numpy_include/numpy/old_defines.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/oldnumeric.h" "$(@D)/numpy_include/numpy/oldnumeric.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/random/bitgen.h" "$(@D)/numpy_include/numpy/random/bitgen.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/random/distributions.h" "$(@D)/numpy_include/numpy/random/distributions.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/ufunc_api.txt" "$(@D)/numpy_include/numpy/ufunc_api.txt" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/ufuncobject.h" "$(@D)/numpy_include/numpy/ufuncobject.h" && cp -f "/home/ros/tfenv/lib/python3.8/site-packages/numpy/core/include/numpy/utils.h" "$(@D)/numpy_include/numpy/utils.h"
""",
)
If you need anything else to solve the problem just write a comment and I will update the post.