gpt4 book ai didi

python - 有没有办法让Jython py_compile不记录源文件的绝对路径?

转载 作者:行者123 更新时间:2023-12-01 07:55:03 25 4
gpt4 key购买 nike

我正在使用py_compile在 Jython 2.5.3 中将一些 Python 文件编译为 $py.class 文件。

我注意到这个模块似乎记录了源文件的绝对路径,因此如果我移动源树的位置,$py.class 文件就会发生变化。

有什么方法可以让 py_compile 记录相对路径而不是绝对路径吗? 我可以理解为什么需要它来进行异常处理,但我不想引用绝对路径路径,因为它泄漏了有关它在编译 .py 文件的计算机上的位置的信息。

<小时/>

示例:

jython1.py:

import sys
import py_compile

if __name__ == '__main__':
infile = sys.argv[1]
py_compile.compile(infile)

jython2.py:

def doit(a,b):
print a/b

doit(3,4)
doit(3,0)

我可以通过以下方式运行它

java -jar path/to/jython-standalone-2.5.3.jar jython1.py jython2.py

生成的 jython2$py.class 文件包含 jython2.py 的路径

最佳答案

哎呀,没读documentation足够接近。 py_compile.compile() 还有第三个参数(我的重点):

py_compile.compile(file[, cfile[, dfile[, doraise]]])

Compile a source file to byte-code and write out the byte-code cache file. The source code is loaded from the file name file. The byte-code is written to cfile, which defaults to file + 'c' ('o' if optimization is enabled in the current interpreter). If dfile is specified, it is used as the name of the source file in error messages instead of file. If doraise is true, a PyCompileError is raised when an error is encountered while compiling file. If doraise is false (the default), an error string is written to sys.stderr, but no exception is raised.

关于python - 有没有办法让Jython py_compile不记录源文件的绝对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56029338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com