Я хочу запускать скрипт 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, я не получаю ошибки.
импортные гуробипы
импортировать pkg_resources
pkg_resources.get_distribution ("гуробипы"). версия
'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