簡體   English   中英

Pyinstaller 執行腳本失敗

[英]Pyinstaller failed to execute script

所以,我試圖用腳本制作一個可執行文件。 它工作正常,沒有任何錯誤,我可以用它制作可執行文件,並且可執行文件也工作正常。 但后來我添加了名為guessit的 python 模塊。 然后 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 在可執行文件 dist 文件夾中搜索 babelfish 數據? 我不知道這里出了什么問題,也不知道如何解決這個問題。 請幫忙。

快速瀏覽 - guessit庫用於從視頻文件名中獲取有關視頻的信息,包括允許視頻進入的國家/地區。

Babelfish 庫用於處理國家/地區和語言,並包含一個ISO 3166-1 文本文件,其中包含所有國家/地區名稱及其 2 字符代碼。 Guessit 多次包含 Babelfish 但可執行文件的 dist 文件夾沒有那個 ISO 文本文件。 我不確定 pyinstaller 的具體細節,但是您能否將上面的 ISO 文件復制到它需要的文件夾中?

在您的 pyinstaller 規范文件中:

from PyInstaller.utils.hooks import collect_data_files

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

這將告訴 pyinstaller 包含來自包 babelfish 的數據並將其包含在打包的可執行文件中。 應該解決你的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM