prolisk
@prolisk
Верстая. Криво.

Как добавить phantomJS в .exe через pyinstaller python?

Нужно "включить" PhantomJs в состав .exe-файла.
Генерирую через pyinstaller .spec файл для скрипта.
Потом добавляю туда Tree('phantomjs\\bin')

# -*- mode: python -*-

block_cipher = None


a = Analysis(['test_phantom.py'],
             pathex=['D:\\python35_64'],
             binaries=[],
             datas=[],
             hiddenimports=['queue'],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
		  Tree('phantomjs\\bin'),
          a.zipfiles,
          a.datas,
          name='test_phantom',
          debug=False,
          strip=False,
          upx=True,
          console=True )


В самом скрипте вызов идет вот так:
browser = webdriver.PhantomJS(('phantomjs\\bin\\phantomjs.exe'))


Как правильно прописать путь в скрипте и в файле .spec, чтобы на других ПК .ехе-файл запускался без проблем? Без доп.установки фантома и прописывания в Path.
Спасибо.
  • Вопрос задан
  • 219 просмотров
Решения вопроса 1
prolisk
@prolisk Автор вопроса
Верстая. Криво.
Если делать через pyinstaller, то в скрипте .py следующий код:
try:
        base_path = sys._MEIPASS
    except Exception:
        base_path = os.path.abspath(".")        
    browser = webdriver.PhantomJS(base_path+'\\phantomjs.exe')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы