У меня есть кросс-платформенный интерфейс GUI для PyInstaller. Я хочу проверить установленную версию PyInstaller. Пользователь предоставляет папку установки PyInstaller. Я могу сделать это через командную строку python pyinstaller --version
, но это открывает командную строку в Windows, которую я хочу избежать. Есть ли способ получить доступ к функции get_version() в модуле Python не в том же пути, что и запущенное приложение? В качестве альтернативы, как предотвратить запуск командной строки в Windows при сохранении межплатформенной совместимости моего приложения.импортировать модуль python из указанного пользователем каталога?
Вот мой код до сих пор:
def pyversion(installdir):
flags=[]
flags.append(sys.executable)
pylocation = os.path.join(installdir, 'pyinstaller.py')
flags.append(pylocation)
flags.append('--version')
p = subprocess.Popen(flags,
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
out,err = p.communicate()
return float(out.strip()[:3])
Если GUI запускается одним и тем же питоном, на котором установлен «pyinstaller», а затем вы можете просто «из Pyinstaller импортировать get_version; version = get_version() '. Или измените 'sys.path' для импорта из вашего каталога, предполагая, что версии совместимы – jfs