什么是__pyclasspath__?

时间:2018-03-07 17:31:36

标签: jython

在我不明白的情况下,当我在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时,它被重新创建,前缀消失了。

1 个答案:

答案 0 :(得分:1)

如果coverage.py位于.jar文件中,然后将.jar文件添加到类路径中,则coverage.__file__将以__pyclasspath__为前缀。