pyinstaller не смог выполнить скрипт - PullRequest
0 голосов
/ 25 июня 2018

Итак, я пытаюсь сделать исполняемый файл из скрипта. Все работало нормально без каких-либо ошибок, и я мог сделать исполняемый файл с этим, и исполняемый файл также работал нормально. Но затем я добавил модуль python с именем guessit. Затем pyinstaller создал exe без какой-либо ошибки, но когда я запускаю exe, он выдает следующую ошибку

Traceback (most recent call last):
  File "iconify.py", line 5, in <module>
  File "c:\python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 396, in load_module
    exec(bytecode, module.__dict__)
  File "site-packages\guessit\__init__.py", line 6, in <module>
  File "c:\python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 396, in load_module
    exec(bytecode, module.__dict__)
  File "site-packages\guessit\api.py", line 19, in <module>
  File "c:\python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 396, in load_module
    exec(bytecode, module.__dict__)
  File "site-packages\guessit\rules\__init__.py", line 11, in <module>
  File "c:\python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 396, in load_module
    exec(bytecode, module.__dict__)
  File "site-packages\guessit\rules\properties\episodes.py", line 14, in <module>
  File "c:\python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 396, in load_module
    exec(bytecode, module.__dict__)
  File "site-packages\guessit\rules\properties\title.py", line 11, in <module>
  File "c:\python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 396, in load_module
    exec(bytecode, module.__dict__)
  File "site-packages\guessit\rules\properties\language.py", line 10, in <module>
  File "c:\python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 396, in load_module
    exec(bytecode, module.__dict__)
  File "site-packages\babelfish\__init__.py", line 22, in <module>
  File "c:\python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 396, in load_module
    exec(bytecode, module.__dict__)
  File "site-packages\babelfish\country.py", line 21, in <module>
  File "site-packages\pkg_resources\__init__.py", line 1232, in resource_stream
  File "site-packages\pkg_resources\__init__.py", line 1479, in get_resource_stream
  File "site-packages\pkg_resources\__init__.py", line 1482, in get_resource_string
  File "site-packages\pkg_resources\__init__.py", line 1558, in _get
  File "c:\python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 479, in get_data
    with open(path, 'rb') as fp:
IOError: [Errno 2] No such file or directory: u'E:\\NEWFOL~1\\app\\dist\\Iconify\\babelfish\\data\\iso-3166-1.txt'
[9908] Failed to execute script iconify

Почему pyinstaller ищет данные babelfish в исполняемой папке dist? Я понятия не имею, что здесь происходит, и не знаю, как это решить. Пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

В вашем файле спецификаций pyinstaller:

from PyInstaller.utils.hooks import collect_data_files

a = Analysis(
  ...
  datas=[collect_data_files("babelfish")],

Это заставит pyinstaller включить данные из пакета babelfish и включить их в упакованный исполняемый файл. Должен исправить вашу проблему

0 голосов
/ 25 июня 2018

Быстрый взгляд - библиотека думаю используется для получения информации о видео из имен файлов видео, , включая страны, в которых видео разрешено.

Библиотека Babelfish предназначена для работы со странами и языками и включает в себя текстовый файл ISO 3166-1 , который содержит все названия стран и их 2-значный код. Guessit включает Babelfish довольно много раз , но папка dist для исполняемого файла не имеет этого текстового файла ISO. Я не уверен в точных плюсах и минусах pyinstaller, но не могли бы вы просто скопировать указанный выше файл ISO в нужную папку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...