Как я могу заставить PythonInterpreter распознавать datetime и другие модули, такие как psutils в python? - PullRequest
0 голосов
/ 22 сентября 2019

Я запускаю программу на языке python Diagnics.py из класса Java, который называется PyInterpreter, который инициализирует объект PythonInterpreter jython и файл для использования и может запускать методы из этой программы 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

Я установил datetime и psutil с pip, и онив /usr/local/bin/python3.7/site-packages, а также /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages.Я также скопировал и вставил необходимые файлы из этого места в мой 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, я все равно получаю ту же ошибку.Прямо сейчас это только строка для импорта datetime, но я знаю, что если бы я сначала набрал import psutil, он бы тоже сломался.Есть идеи?

1 Ответ

1 голос
/ 22 сентября 2019

Я понял это.Мне просто нужно было добавить то, что должно быть в файле sys.path, в переменную PYTHONPATH в моем bash_profile, чтобы добавить это в переменную sys.path для jython.

...