daohu527
daohu527

Reputation: 512

What is the role of "py_binary"?

py_binary finally generates an executable file or an alias for a py script? What are its benefits? If it is an executable file, it will lose the meaning of python.

Upvotes: 1

Views: 537

Answers (1)

Ulrich Eckhardt
Ulrich Eckhardt

Reputation: 17444

Making something executable can be just adding a chmod +x and slapping a #!/foo/bar line on top, the thing itself is still whatever interpreter code it was before.

In the case of bazel, it will add a wrapper script that will set up an execution environment before dispatching to the Python code. Consider e.g. Bazel's runfiles, but also other py_library targets.

In addition, you can use the target in places where an executable is required as attribute for another target. A single Python file doesn't have any dependencies Bazel knows about, so that would technically fit there but would not integrate well with Bazel.

Upvotes: 1

Related Questions