Dubov 0 Posted August 22 · Report post программа на C++ Qt активно использует высокоуровневую интеграцию с питоном. По сути программа отправляет в интерпретатор строки и читает результаты из файла. При переносе на другой компьютер exe-файл на запускается по причине отсутствия в переменной PATH пути именно к моему питону с библиотеками. Можно как-то "научить" мой exe-шник брать библиотеки где нужно без правки PATH? Share this post Link to post Share on other sites
MegaVolt 0 Posted August 23 · Report post Положить их рядом с exe? Или прописать путь к ним в переменную PATH. Share this post Link to post Share on other sites
andrew_b 0 Posted August 23 · Report post А что, в Венде библиотеки ищутся по %PATH%? Share this post Link to post Share on other sites
MegaVolt 0 Posted August 23 · Report post 7 минут назад, andrew_b сказал: А что, в Венде библиотеки ищутся по %PATH%? По умолчанию да. Вначале рядом с EXE потом path. Думаю прога может это изменить но вряд ли обычно это делают. Share this post Link to post Share on other sites
k155la3 0 Posted August 24 · Report post On 8/23/2019 at 1:25 AM, Dubov said: программа на C++ Qt активно использует высокоуровневую интеграцию с питоном. По сути программа отправляет в интерпретатор строки и читает результаты из файла. При переносе на другой компьютер exe-файл на запускается по причине отсутствия в переменной PATH пути именно к моему питону с библиотеками. Можно как-то "научить" мой exe-шник брать библиотеки где нужно без правки PATH? Запускайте свой exe в своей среде, через start. Все переменные окружения, если надо, можете прописать свои, адаптированные для данного PC. Вообще эта увязка должна предусматриваться самой программой, или хотябы через локальный конфигурацонный файл, ini, или (наверное) реестр. Share this post Link to post Share on other sites
Kabdim 0 Posted August 24 · Report post Если exe ваш - можно динамически загрузить любую dll по любому удобному пути руками, через winapi. LoadLibrary etc. Share this post Link to post Share on other sites
Dubov 0 Posted August 30 · Report post дело в том, что моя программа на C++ использует python. Для корректной работы необходимо чтобы PATH содержал пути к python. Я бы хотел положить python рядом с exe (на каталог выше) и сказать моему exe искать python там. Share this post Link to post Share on other sites
alexunder 0 Posted August 30 · Report post 28 minutes ago, Dubov said: дело в том, что моя программа на C++ использует python. Для корректной работы необходимо чтобы PATH содержал пути к python. Я бы хотел положить python рядом с exe (на каталог выше) и сказать моему exe искать python там. Это уже другой вопрос. Вам, наверное, нужна PythonXX.dll? Можно поместить ее в один каталог с исполняемым файлом, но обычно хорошим тоном является установка Питона на рабочу станцию, после чего Dll будет находиться. Share this post Link to post Share on other sites
Dubov 0 Posted August 30 · Report post 43 minutes ago, alexunder said: обычно хорошим тоном является установка Питона на рабочу станцию на рабочей станции уже может быть установлена версия питона, отличающейся от моей. мне нужно решение на подобии virtual env. как его реализовать для моего exe? Share this post Link to post Share on other sites
alexunder 0 Posted August 31 · Report post 12 hours ago, Dubov said: на рабочей станции уже может быть установлена версия питона, отличающейся от моей. мне нужно решение на подобии virtual env. как его реализовать для моего exe? Виртуальное окружение - это же чисто питоновская штука, когда интерпретатор можно запустить в другими переменными. А вот простой "экзешник", тут, увы, подсказать не могу. А почему бы Вам просто не поместить нужную Dll в папку с exe? Если Вам нужен целиком весь питон нужной версии, тогда лучше под него создавать свою переменную типа MYPYTHONPATH, с помощью которой ваша программа может находит нужную вам версию питона с всей обвесухой. Это можно сделать полуавтоматический, когда пользователь при первом запуске задаёт путь. Share this post Link to post Share on other sites
Dubov 0 Posted September 2 · Report post интересно, моя программа написана на C++ Qt. Python лежит в отдельной папке, Python не установлен (в переменной PATH его нет). В Qt я указываю расположение библиотеки питона в нужной папке и include там же. При попытке запустить программу из Qt Creator - программа не запускается(в консоли сообщение: приложение неожиданно завершилось). Устанавливаю питон как нужно. Приложение запускается из Qt Creator. Компилирую, получаю exe, удаляю питон(чищу PATH), питон остается только в отдельной папке как было изначально. Приложение работает как нужно (запускаю уже без Qt Creator) Share this post Link to post Share on other sites
alexunder 0 Posted September 3 · Report post 5 hours ago, Dubov said: интересно, моя программа написана на C++ Qt. Python лежит в отдельной папке, Python не установлен (в переменной PATH его нет). В Qt я указываю расположение библиотеки питона в нужной папке и include там же. При попытке запустить программу из Qt Creator - программа не запускается(в консоли сообщение: приложение неожиданно завершилось). Устанавливаю питон как нужно. Приложение запускается из Qt Creator. Компилирую, получаю exe, удаляю питон(чищу PATH), питон остается только в отдельной папке как было изначально. Приложение работает как нужно (запускаю уже без Qt Creator) Скорее всего, потому что инсталлятор питона кладет pythonXX.dll в поддиректорию Windows\System, откуда она находится по PATH Share this post Link to post Share on other sites