如何知道解释器在代码中是Jython还是CPython?
有没有办法检测执行代码的解释器是Jython还是CPython 我还有一个帖子:。对于这种情况,如果我知道解释器是Jython,我可以使用不同的代码如何知道解释器在代码中是Jython还是CPython?,python,jython,Python,Jython,有没有办法检测执行代码的解释器是Jython还是CPython 我还有一个帖子:。对于这种情况,如果我知道解释器是Jython,我可以使用不同的代码 if JYTHON: sys.path.insert(0, os.path.dirname(__file__)) from utils import * else: from .utils import * 有一个官方的方法来做:-)请看一看 返回标识Python实现的字符串。可能的返回值为:“CPython”、“Iro
if JYTHON:
sys.path.insert(0, os.path.dirname(__file__))
from utils import *
else:
from .utils import *
有一个官方的方法来做:-)请看一看 返回标识Python实现的字符串。可能的返回值为:“CPython”、“IronPython”、“Jython”、“PyPy” 版本2.6中的新功能 我以前不知道 旧答案:
可能没有标准化的界面,但您可以使用一些有根据的猜测,例如,
sys.executable
()和sys.version
。此外,一些口译员肯定会提供特定于他们的功能,您可以利用这些功能。我不确定这是否安全,但我从中得到了一些提示
对于打印系统可执行文件,我得到了不同的结果
context> jython context/context.py
None
context> python context/context.py
/usr/bin/python
因此,检查sys.executable
可能是检查的一种方法 可能不是最好的方法,但是要检测Jython,您不能尝试从Java导入一些东西吗
try:
import java.lang.System
print "Jython!"
except:
print "Not Jython"
Python是语言规范。最著名的实现是Jython和CPython。@JayanthKoushik:那么,你的观点是没有(简单的或编程的)方法吗?没有;我要指出的是,解释器是Jython或CPython,而不是Jython或Python。我想编辑说明得很清楚。Jython可执行文件名为
Jython.exe
,还是仅仅是python.exe
。另请注意:从python3.3开始,还有一个包含实现的名称和版本,可能包含其他相关信息的文件。