【发布时间】:2020-01-16 12:53:05
【问题描述】:
当我使用 python 解释器时,我可以很好地导入它。但是如果我写一个脚本,出于某种原因import jnius 工作正常,但是当我写from jnius import autoclass 或from jnius import JavaClass 时,我得到一个ImportError: Cannot import 'autoclass' from 'jnius'。
我什至尝试过写作
import jnius
Python Activity = jnius.autoclass('org.kivy.android.PythonActivity')
但我得到AttributeError: 'jnius' has no attribute 'autoclass'。
编辑:
当我们讨论autoclass 主题时,当我写
Python Activity = autoclass('org.kivy.android.PythonActivity')
我明白了
jnius.JavaException: Class not found b'org/kivy/android/PythonActivity'
【问题讨论】:
-
会不会是 python2/3 的问题?当它工作时你使用哪个解释器,脚本调用哪个解释器?你可以打印
sys.version(如果我没记错的话)。 -
我正在使用 python 3.7.3,我没有另一个执行脚本的解释器
-
你确定吗?您是否与
sys.version核对过(那将在我要检查的列表的顶部)。您在解释器中所做的事情是否与您在脚本中所做的事情相同?您是否在新打开的口译员中尝试过?一般应该在sys.path或PYTHONPATH -
一看到你的评论,我确实使用了
sys.version。它说版本是3.7.3。在哪里可以找到PYTHONPATH? -
PYTHONPATH是您设置的环境变量,即使用$ PYTHONPATH=/path/to/some/modules python # or add script.py here启动您的脚本(或解释器)(您不需要$,它只是标记通常的bash 提示,在Windows 中它就像C:\...\>),但我会从检查sys.path开始,甚至更早,启动一个新的/新鲜的python 解释器并尝试在其中包含你想要的东西。如果它适用于解释器,它应该适用于脚本。那里没有两难选择......你是如何在解释器中包含这些东西的?你能再做一次吗?
标签: python python-3.x kivy pyjnius