Я хочу запустить скрипт Python из Qt, когда пользователь нажимает кнопку. Этот скрипт правильно работает в терминале, но я получаю ошибку при выполнении из Qt.
Я попытался выполнить сценарий из Pycharm IDE, и я получаю ту же ошибку:
Traceback (most recent call last):
File "/home/ana/PycharmProjects/Gurobi/one_set.py", line 1, in <module>
from gurobipy import *
File "/usr/local/lib/python2.7/dist-packages/gurobipy/__init__.py", line 1, in <module>
from .gurobipy import *
ImportError: libgurobi81.so: cannot open shared object file: No such file or directory
Когда я выполняю «import gurobipy» в консоли Python, я не получаю ошибки.
import gurobipy
import pkg_resources
pkg_resources.get_distribution ("gurobipy"). Версия
'8.1.1'
При поиске в libgurobi81.so я проверяю, существует ли этот файл в:
/opt/gurobi811/linux64/lib/libgurobi81.so
/usr/lib/python2.7/dist-packages/gurobi811/linux64/lib/libgurobi81.so
/usr/local/lib/python2.7/dist-packages/gurobipy/libgurobi81.so
Как указано в инструкциях по установке, я включил переменные средыв /home/usr/.bashrc как:
export GUROBI_HOME="/opt/gurobi811/linux64"
export PATH="${PATH}:${GUROBI_HOME}/bin"
export LD_LIBRARY_PATH="${GUROBI_HOME}/lib"
Я также включил другие каталоги, содержащие libgurobi81.so:
export PATH=$PATH:/usr/lib/python2.7/dist-packages/gurobi811/
export PATH=$PATH:/usr/local/lib/python2.7/dist-packages/gurobipy/
Однако из терминала все работает нормально, и я получаюрешение:
/ usr / bin / python2.7 /home/ana/PycharmProjects/Gurobi/one_set.py
Академическая лицензия - только для некоммерческого использования
instance objVal time
Instance1.csv 0.030176 0.0002670288
[1 rows x 2 columns]
Код, который я использую для запуска скрипта Python из Qt:
QString command("/usr/bin/python2.7");
QStringList params = QStringList() << "/home/ana/PycharmProjects/Gurobi/one_set.py";
QProcess *process = new QProcess();
process->startDetached(command, params);
process->waitForFinished();
qDebug()<<process->readAllStandardOutput();
process->close();
Я ожидал такой же вывод от Qt, как и от терминала, так как команда, которую я использую для его запуска, такая же: / usr /bin / python2.7 /home/ana/PycharmProjects/Gurobi/one_set.py