从源代码构建Tensorflow 2.0在Windows上失败;找不到bazel bin“;

从源代码构建Tensorflow 2.0在Windows上失败;找不到bazel bin“;,tensorflow,build,python-3.7,bazel,tensorflow2.0,Tensorflow,Build,Python 3.7,Bazel,Tensorflow2.0,我正试图在Windows上构建Tensorflow 2.0,以利用AVX2支持,因为“pip install Tensorflow”的默认软件包不包括AVX2支持。我在这里遵循指南: 在经历了大量失败的构建之后,在将环境变量设置为Visual Studio 2017之后,我终于成功地构建了。从c:\tmp\tensorflow运行的最后一个命令(完成该命令需要9个小时)是: bazel build--config=opt//tensorflow/tools/pip\u包:build\u pip

我正试图在Windows上构建Tensorflow 2.0,以利用AVX2支持,因为“pip install Tensorflow”的默认软件包不包括AVX2支持。我在这里遵循指南:

在经历了大量失败的构建之后,在将环境变量设置为Visual Studio 2017之后,我终于成功地构建了。从c:\tmp\tensorflow运行的最后一个命令(完成该命令需要9个小时)是:

bazel build--config=opt//tensorflow/tools/pip\u包:build\u pip\u包--define=no\u tensorflow\u py\u deps=true

说明“”中的下一步是运行

bazel-bin\tensorflow\tools\pip\u-package\build\u-pip\u-package C:/tmp/tensorflow\u-pkg

如果我直接这样做(从c:\tmp\tensorflow),我会得到错误“系统找不到指定的路径”

然后,我查看了构建的最终消息:

C:/users/john.doe//u bazel\u john.doe/3ttaaxce/execroot/org\u tensorflow/bazel-out/x64\u windows-opt/bin/tensorflow/tools/pip\u package/build\u pip\u package.exe

信息:运行时间:32810.307s,关键路径:25586.71s

信息:8885进程:8885本地

信息:生成已成功完成,总共11312个操作

从这里看起来build_pip_package.exe位于不同的位置,所以我运行了

C:/users/john.doe//u bazel\u john.doe/3ttaaxce/execroot/org\u tensorflow/bazel-out/x64\u windows-opt/bin/tensorflow/tools/pip\u package/build\u pip\u package C:/tmp/tensorflow\u pkg

但这导致了错误:

2019年10月11日星期五08:30:40 PDT:==在目录中准备震源:/tmp/tmp.B207TraE5w

找不到bazel bin。您是否从生成树的根目录运行


有人知道可能出了什么问题吗?

Bazel创建了一个从
Bazel bin
到输出目录的链接。此行为由
--symlink\u prefix
选项控制。试着用
--annound_rc
运行bazel,看看是否在某个地方设置了该选项—它可能正在创建一个具有不同名称的链接,或者根本不创建链接


此外,tensorflow中的任何程序都假定输出将在
bazel bin
中,这是错误的。对于节点项目,我们建议使用
--symlink\u prefix=dist/
,这样输出就会进入项目中的
dist/bin

我通过从源代码重新编译到新目录c:\tmp2\tensorflow解决了这个问题。这次
build\u pip\u package.exe
位于正确的位置,我成功地构建了pip包并进行了安装。

您是如何更改到另一个与安装文件夹无关的文件夹的路径的?@Andrej-我不确定您的意思。我刚刚运行了bazel-bin\tensorflow\tools\pip\u-package\build\u-pip\u-package C:/tmp2/tensorflow\u-pkg。C部分:/tmp2/tensorflow_pkg是一个绝对路径,我有与上面描述的完全相同的问题。我的构建已完成,但bazel将其作为链接编译到该用户文件夹中。当我尝试运行build_pip_package.exe时,它没有找到它(尽管有)。您在bazel build命令中指定了哪些参数来将其编译到另一个文件夹?@Andrej-您是否尝试过从头开始,重新编译,然后切换到新的tmp目录?在Github上,有人建议可能是c:\tmp管理不当(link-)。啊,好的,所以您只是更改了构建目录。我以为您会这样做:“bazel--output\u user\u root=C:\tmp2build--config=opt//tensorflow/tools/pip\u package:build\u pip\u package”来更改bazel输出目录。但是好的,我会试试的,谢谢。