0

我正在从一个名为 PyInterpreter 的 java 类中运行一个名为 diagnostics.py 的 python 程序,该类初始化一个 jython PythonInterpreter 对象和一个要使用的文件,并且可以运行该 python 程序中的方法。我的 python 程序如下所示:

import datetime
import psutil

class HeartbeatGenerator:
    ...

当我尝试运行这个程序时,我得到了错误:

Exception in thread "main" Traceback (most recent call last):
  File "../../../eclipse-workspace/Diagnostics/diagnostics.py", line 2, in <module>
    import datetime
ImportError: No module named datetime

我已经使用 pip 安装了 datetime 和 psutil,它们位于 /usr/local/bin/python3.7/site-packages 以及 /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-包。我还将该位置的必要文件复制并粘贴到我的 jython.2.5.3/lib/site-packages 中,在我的 PyInterpreter 文件中,我尝试为 python.home 和 python.path 设置我的系统属性,如下所示:

public PyInterpreter()  
       {  
          Properties props = System.getProperties();
          props.setProperty("python.home", "⁨/usr/local/lib/python3.7⁩⁩");
          props.setProperty("python.path", "/usr/local/lib/python3.7/site-packages");
          System.out.print(props);
          PythonInterpreter.initialize(System.getProperties(),  
                                       props, 
                                       new String[0]);  

          this.interpreter = new PythonInterpreter();  
       }

但无论我将 sys 属性设置为什么,我仍然会遇到同样的错误。现在它只在导入日期时间线上,但我知道如果我import psutil先导入,它也会在那条线上中断。有任何想法吗?

4

1 回答 1

1

我想到了。我只需要将 sys.path 上需要的内容添加到我的 bash_profile 中的 PYTHONPATH 变量中,这样它就会将其添加到 jython 的 sys.path 变量中。

于 2019-09-22T19:17:25.443 回答