在我不明白的情况下,当我在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中发生了这个问题,我为apt.py测试套件中的一部分创建了tox。当我删除virtualenv时,它被重新创建,前缀消失了。
答案 0 :(得分:1)
如果coverage.py
位于.jar文件中,然后将.jar文件添加到类路径中,则coverage.__file__
将以__pyclasspath__
为前缀。