Перейти к содержанию
    

указать программе где брать библиотеки

 программа на C++ Qt активно использует высокоуровневую интеграцию с питоном. По сути программа отправляет в интерпретатор строки и читает результаты из файла. При переносе на другой компьютер exe-файл на запускается по причине отсутствия в переменной PATH пути именно к моему питону с библиотеками.

 Можно как-то "научить" мой exe-шник брать библиотеки где нужно без правки PATH? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 минут назад, andrew_b сказал:

А что, в Венде библиотеки ищутся по %PATH%?

По умолчанию да. Вначале рядом с EXE потом path. Думаю прога может это изменить но вряд ли обычно это делают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/23/2019 at 1:25 AM, Dubov said:

 программа на C++ Qt активно использует высокоуровневую интеграцию с питоном. По сути программа отправляет в интерпретатор строки и читает результаты из файла. При переносе на другой компьютер exe-файл на запускается по причине отсутствия в переменной PATH пути именно к моему питону с библиотеками.

 Можно как-то "научить" мой exe-шник брать библиотеки где нужно без правки PATH? 

Запускайте свой exe  в своей среде, через start. Все переменные окружения, если надо, можете прописать свои, адаптированные для данного PC.

Вообще эта увязка должна предусматриваться самой программой, или хотябы через локальный конфигурацонный файл, ini, или (наверное) реестр.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если exe ваш - можно динамически загрузить любую dll по любому удобному пути руками, через winapi. LoadLibrary etc.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

дело в том, что моя программа на C++ использует python. Для корректной работы необходимо чтобы PATH содержал пути к python. Я бы хотел положить python рядом с exe (на каталог выше) и сказать моему exe искать python там. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

28 minutes ago, Dubov said:

дело в том, что моя программа на C++ использует python. Для корректной работы необходимо чтобы PATH содержал пути к python. Я бы хотел положить python рядом с exe (на каталог выше) и сказать моему exe искать python там. 

Это уже другой вопрос. Вам, наверное, нужна PythonXX.dll? Можно поместить ее в один каталог с исполняемым файлом, но обычно хорошим тоном является установка Питона на рабочу станцию, после чего Dll будет находиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

43 minutes ago, alexunder said:

обычно хорошим тоном является установка Питона на рабочу станцию

на рабочей станции уже может быть установлена версия питона, отличающейся от моей. мне нужно решение на подобии virtual env. как его реализовать для моего exe?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 hours ago, Dubov said:

на рабочей станции уже может быть установлена версия питона, отличающейся от моей. мне нужно решение на подобии virtual env. как его реализовать для моего exe?

Виртуальное окружение - это же чисто питоновская штука, когда интерпретатор можно запустить в другими переменными. А вот простой "экзешник", тут, увы, подсказать не могу. А почему бы Вам просто не поместить нужную Dll в папку с exe? Если Вам нужен целиком весь питон нужной версии, тогда лучше под него создавать свою переменную типа MYPYTHONPATH, с помощью которой ваша программа может находит нужную вам версию питона с всей обвесухой. Это можно сделать полуавтоматический, когда пользователь при первом запуске задаёт путь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

интересно, моя программа написана на C++ Qt. Python лежит в отдельной папке, Python не установлен (в переменной PATH его нет). В Qt я указываю расположение библиотеки питона в нужной папке и include там же. При попытке запустить программу из Qt Creator - программа не запускается(в консоли сообщение: приложение неожиданно завершилось).

Устанавливаю питон как нужно. Приложение запускается из Qt Creator. Компилирую, получаю exe, удаляю питон(чищу PATH), питон остается только в отдельной папке как было изначально. Приложение работает как нужно (запускаю уже без Qt Creator) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...