gpt4 book ai didi

python - 在 Jython 中导入非标准的 python 模块

转载 作者:行者123 更新时间:2023-11-28 19:58:20 25 4
gpt4 key购买 nike

一个简单的问题……我正在使用 Jython 执行一些任务,我需要访问一些 MySQL 数据库……我找到了一个适用于 Python2.5 的 MySQL 数据库连接器;它不附带 jython/python 安装(它是第 3 方)。我已将该模块的文件夹与我的 main.py 放在同一目录中,但是当我启动它时,它告诉我找不到该模块。我之前在 Python3.2 中完成过导入操作,我认为它的工作原理是一样的。

Jython 可以导入非标准的 python 模块吗? -- 注意我可以很好地导入 Java 类。

这是错误(是的,这是针对 Minecraft 的):

20:50:44 [SEVERE] org.bukkit.plugin.InvalidPluginException: Traceback (most recent call last):
File "<iostream>", line 10, in <module>
ImportError: No module named PyDbLite

20:50:44 [SEVERE] at net.lahwran.bukkit.jython.PythonPluginLoader.loadPlugin(PythonPluginLoader.java:280)
20:50:44 [SEVERE] at net.lahwran.bukkit.jython.PythonPluginLoader.loadPlugin(PythonPluginLoader.java:113)
20:50:44 [SEVERE] at net.lahwran.bukkit.jython.PythonPluginLoader.loadPlugin(PythonPluginLoader.java:83)
20:50:44 [SEVERE] at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305)
20:50:44 [SEVERE] at com.master.bukkit.python.PythonLoader.onLoad(PythonLoader.java:58)
20:50:44 [SEVERE] at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:212)
20:50:44 [SEVERE] at org.bukkit.craftbukkit.CraftServer.<init>(CraftServer.java:183)
20:50:44 [SEVERE] at net.minecraft.server.ServerConfigurationManager.<init>(ServerConfigurationManager.java:53)
20:50:44 [SEVERE] at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:156)
20:50:44 [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:422)
20:50:44 [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
20:50:44 [SEVERE] Caused by: Traceback (most recent call last):
File "<iostream>", line 10, in <module>
ImportError: No module named PyDbLite

20:50:44 [SEVERE] at org.python.core.PyException.fillInStackTrace(PyException.java:70)
20:50:44 [SEVERE] at java.lang.Throwable.<init>(Throwable.java:181)
20:50:44 [SEVERE] at java.lang.Exception.<init>(Exception.java:29)
20:50:44 [SEVERE] at java.lang.RuntimeException.<init>(RuntimeException.java:32)
20:50:44 [SEVERE] at org.python.core.PyException.<init>(PyException.java:46)
20:50:44 [SEVERE] at org.python.core.PyException.<init>(PyException.java:43)
20:50:44 [SEVERE] at org.python.core.PyException.<init>(PyException.java:61)
20:50:44 [SEVERE] at org.python.core.Py.ImportError(Py.java:290)
20:50:44 [SEVERE] at org.python.core.imp.import_first(imp.java:750)
20:50:44 [SEVERE] at org.python.core.imp.import_name(imp.java:834)
20:50:44 [SEVERE] at org.python.core.imp.importName(imp.java:884)
20:50:44 [SEVERE] at org.python.core.ImportFunction.__call__(__builtin__.java:1220)
20:50:44 [SEVERE] at org.python.core.PyObject.__call__(PyObject.java:357)
20:50:44 [SEVERE] at org.python.core.__builtin__.__import__(__builtin__.java:1173)
20:50:44 [SEVERE] at org.python.core.imp.importOne(imp.java:903)
20:50:44 [SEVERE] at org.python.pycode._pyx5.f$0(<iostream>:52)
20:50:44 [SEVERE] at org.python.pycode._pyx5.call_function(<iostream>)
20:50:44 [SEVERE] at org.python.core.PyTableCode.call(PyTableCode.java:165)
20:50:44 [SEVERE] at org.python.core.PyCode.call(PyCode.java:18)
20:50:44 [SEVERE] at org.python.core.Py.runCode(Py.java:1261)
20:50:44 [SEVERE] at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:235)
20:50:44 [SEVERE] at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:230)
20:50:44 [SEVERE] at net.lahwran.bukkit.jython.PythonPluginLoader.loadPlugin(PythonPluginLoader.java:239)
20:50:44 [SEVERE] ... 10 more

最佳答案

jython 可以导入非标准的 python 模块,如果它们是纯 python。数据库连接通常是 cpython 模块。有关数据库连接,请参阅 zxJDBC它使 java 可用的任何 jdbc 连接都以标准 python DBI 2.0 的方式运行。

两全其美!

关于python - 在 Jython 中导入非标准的 python 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10340453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com