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