在成功构建具有GPU支持的TensorFlow之后,我正在尝试构建pip包,但出现错误,提示它无法读取simple_console_for_windows.zip文件。
我已经确认该文件位于C:\ tensorflow \ bazel-bin \ tensorflow \ tools \ pip_package文件夹中,但它是0个字节。
这是我的pip构建命令:
bazel-bin\tensorflow\tools\pip_package\build_pip_package C:/tmp/tensorflow_pkg
这是完整的错误:
Unzipping simple_console_for_windows.zip to create runfiles tree...
[./bazel-bin/tensorflow/tools/pip_package/simple_console_for_windows.zip]
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of ./bazel-bin/tensorflow/tools/pip_package/simple_console_for_windows.zip or
./bazel-bin/tensorflow/tools/pip_package/simple_console_for_windows.zip.zip, and cannot find ./bazel-bin/tensorflow/tools/pip_package/simple_console_for_windows.zip.ZIP, period.
我在Windows 10上使用Bazel 0.16.1,Tensorflow 1.11,CUDA 9.2和CUDNN 7.2.1。
我的构建命令是:
bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
有人知道我可以尝试或检查些什么来构建pip包吗?
答案 0 :(得分:1)
这是解决方法的未解决问题。 https://github.com/tensorflow/tensorflow/issues/20332
编辑以下文件,以删除所有带有“ .zip”的行。
bazel-out / x64_windows-opt / bin / tensorflow / tools / pip_package / simple_console_for_windows.zip-0.params
运行以下命令行以生成所需的zip文件,在我的情况下约为107 MB。详细选项将列出所有文件。
external \ bazel_tools \ tools \ zip \ zipper \ zipper.exe vcC bazel-out / x64_windows-opt / bin / tensorflow / tools / pip_package / simple_console_for_windows.zip @ bazel-out / x64_windows-opt / bin / tensorflow / tools /pip_package/simple_console_for_windows.zip-0.params
现在,原始的pip build命令将构建一个whl。
答案 1 :(得分:1)
这是一个已知问题,不幸的是,其根本原因是https://github.com/tensorflow/tensorflow/issues/22390 TF是一个很大的代码库,当zip文件的大小超过2 GB时,bazel的压缩工具会中断,因为它们仅使用zip32。
最终的解决方案是修复使用zip64的bazel,并使TensorFlow减轻一些重量,该包装最近已经大量增长。
但是,bazel团队能够为我们提供解决方法。
仅当构建pip软件包时,才应将IEquatable<T>
添加到bazel命令中。您仍然将无法构建调试二进制文件,但是至少您将能够构建发行二进制文件。