gpt4 book ai didi

java - Jython、subprocess 和 msvcrt...可能吗?

转载 作者:行者123 更新时间:2023-12-01 15:24:41 26 4
gpt4 key购买 nike

我正在尝试围绕 Python 模块构建一个包装器,将其嵌入到我的 java 代码中。

看起来这个模块使用了很多技巧,比如子进程、线程等等

(实际上它本身就是一个控制 C 实用程序的模块,仅作为二进制文件提供,我试图避免重新编码此 python 包装器已提供的内部逻辑和其他工具的过高成本)

顺便说一句,当从 Java 实例化我自己的包装器时,我得到:

------------------
Exception in thread "MainThread" Traceback (most recent call last):
File "<string>", line 1, in <module>
File "__pyclasspath__/mywrapper.py", line 303, in <module>
File "C:\jython2.5.2\Lib\subprocess.py", line 375, in <module>
import msvcrt
ImportError: No module named msvcrt

如果我查看我的硬盘,没有 msvscrt.py 它应该存放在哪里?

我正在启动我的 jython:

    PythonInterpreter interpreter = new PythonInterpreter(null, new PySystemState());

PySystemState sys = Py.getSystemState();
sys.path.append(new PyString("C:/jython2.5.2/Lib"));
sys.platform = new PyString("win32"); // this is a trick for the wrapper to not fail on a inner plateform test detection with java1.7.0_03

最佳答案

msvcrt在 Jython 中不可用。在 Windows 上的 CPython 中, msvcrt 是编译到 Python 解释器中的内置模块(您可以使用 sys.builtin_module_names 检查它)。没有 msvcrt.py 文件。

为什么你需要“一个让包装器在使用 java1.7.0_03 进行内部平台测试检测时不会失败的技巧”,我不能说。但是将 sys.platform 设置为 win32 会使 Jython 在使用 subprocess 时尝试导入 msvcrt,但这是行不通的。

关于java - Jython、subprocess 和 msvcrt...可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10336812/

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