擅长:python、mysql、java
<p>简短回答:<code>os.path.dirname(__file__)</code></p>
<p>以下是完整的示例:</p>
<pre><code>$ ls
bar/ BUILD foo.py WORKSPACE
$ cat BUILD
py_binary(
name = "foo",
srcs = ["foo.py"],
data = ["//bar:data.json"],
)
$ cat foo.py
import json
import os
ws = os.path.dirname(__file__)
with open(os.path.join(ws, "bar/data.json"), 'r') as fp:
print(json.load(fp))
$ cat bar/BUILD
exports_files(["data.json"])
$ bazel run :foo
</code></pre>
<p>编辑:当你的包在子目录中时,它不能很好地工作。您可能需要使用<code>os.path.dirname</code>返回。在</p>