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

Python 有没有办法让Jython py_compile不记录源文件的绝对路径?,python,jython,Python,Jython,我在Jython2.5.3中使用它将一些Python文件编译成$py.class文件 我注意到这个模块似乎记录了到源文件的绝对路径,因此如果我移动源树的位置,$py.class文件会发生变化 有没有办法让py_compile记录相对路径而不是绝对路径?我知道为什么它需要在那里进行异常处理,但我不希望引用绝对路径,因为它泄漏了有关它在编译.py文件的计算机上的位置的信息 例如: jython1.py: import sys import py_compile if __name__ == '_

我在Jython2.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的路径

Oops,没有仔细阅读。
py\u compile.compile()
还有第三个参数(我的重点是):

py_compile.compile(文件[,cfile[,dfile[,doraise]])

将源文件编译为字节码并写出字节码缓存 文件源代码是从文件名文件加载的。字节码 被写入cfile,默认为file+'c'('o',如果优化 在当前解释器中启用)如果指定了dfile,则为 在错误消息中用作源文件名,而不是文件名。 如果doraise为true,则在出现错误时会引发PyCompileError 编译文件时遇到错误。如果doraise为false(默认值), 将错误字符串写入sys.stderr,但不会引发异常