Python原始输入&;Bazel:EOFError:EOF读取一行时

Python原始输入&;Bazel:EOFError:EOF读取一行时,python,build,stdin,bazel,Python,Build,Stdin,Bazel,我试图使用Bazel作为python程序的构建系统。我将使用test.py的一个示例。我的生成文件包括: package(default_visibility = ["//visibility:public"]) py_binary( name = "test", srcs = [ "test.py", ], main = "test.py", deps = [] ) name = raw_input("Please enter your

我试图使用Bazel作为python程序的构建系统。我将使用test.py的一个示例。我的生成文件包括:

package(default_visibility = ["//visibility:public"])
py_binary(
    name = "test",
    srcs = [
        "test.py",
    ],
    main = "test.py",
    deps = []
)
name = raw_input("Please enter your name\n")

print "your name is {}".format(name)
我的test.py包括:

package(default_visibility = ["//visibility:public"])
py_binary(
    name = "test",
    srcs = [
        "test.py",
    ],
    main = "test.py",
    deps = []
)
name = raw_input("Please enter your name\n")

print "your name is {}".format(name)
当我运行普通编译器时,我得到:

Please enter your name
python
your name is python
但是,当我作为bazel运行时:test 我得到:

回溯(最近一次呼叫最后一次):
文件“[directory]test.[directory]python_test.py”,第1行,在
name=原始输入(“请输入您的姓名”)
EOF:读取一行时的EOF
请输入您的姓名

您使用的是哪个版本的bazel?在旧版本的bazel中,使用
bazel run
运行时,bazel客户端不会将standard In连接到二进制文件。您可以通过
--direct\u run
连接标准。在和中,直接运行是一个noop


您还可以运行生成的二进制文件本身(在您的示例中,如果构建文件位于工作区的根目录下,它将是
bazel-bin/test

我相信我在
0.7.3
:这也是工作中的一个必需版本。从bazel-bin运行文件对我来说很有用!谢谢