在我不明白的情况下,当我在 Jython 中导入模块时,__file__
将 __pyclasspath__
作为前缀:
>>> import coverage
>>> coverage.__file__
'__pyclasspath__/coverage/__init__$py.class'
有时不会:
>>> import coverage
>>> coverage.__file__
'coverage/__init__$py.class'
我现在无法重现__pyclasspath__
情况,因此该路径的详细信息可能是错误的。该前缀是什么意思,什么情况会导致它?
Jython docs提到__pyclasspath__
,但只说它是“我们稍后将讨论的特殊标记”,但稍后不再讨论它。
不知怎的,这件事发生在我的 Jython virtualenv 中,tox 为我创建了作为coverage.py 测试套件的一部分。当我删除 virtualenv 时,它被重新创建,并且前缀消失了。
最佳答案
如果 coverage.py
位于 .jar 文件中,然后将该 .jar 文件添加到类路径中,coverage.__file__
将带有 前缀__pyclasspath__
.
关于jython - 什么是 __pyclasspath__?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49157979/