UnicodeDecodeError просто импортируя панд - PullRequest
0 голосов
/ 01 октября 2019

Я хочу извлечь данные из csv для практики Python.

Я написал около 30 строк кода и попытался преобразовать .ipynb-> .py-> .exe в этом порядке. Однако UnicodeDecodeError произошла при компиляции в .py-> .exe.

Я закомментировал все описания и исследовал причину. Оказывается, эта проблема возникает только при импорте панд.

Можетподскажите как решить эту проблему?

===============================

[Среда разработки]

notebook блокнот jupyter ・ PyInstaller 3.5 ・ Python 3.7.1

[Шаги для воспроизведения]

  1. Создание пустого файла с блокнотом jupyter.
  2. В первой строке пишите только [import pandas as pd].
  3. Конвертируйте в [Test001.py]. Командная строка: jupyter nbconvert --to скрипт Test001.ipynb
  4. Компиляция. Командная строка: pyinstaller Test001.py --onefile --noconsole

[Ошибка]

UnicodeDecodeError: кодек «utf-8» не может декодировать байт 0x83 в позиции 130: недействительноначальный байт

[Test001.py]

#!/usr/bin/env python
# coding: utf-8

# In[ ]:

import pandas as pd

[обратная связь]

Traceback (most recent call last):
    File "c:\programdata\anaconda3\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
    File "c:\programdata\anaconda3\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
    File "C:\ProgramData\Anaconda3\Scripts\pyinstaller.exe\__main__.py", line 9, in <module>
    File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\__main__.py", line 111, in run
run_build(pyi_config, spec_file, **vars(args))
    File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\__main__.py", line 63, in run_build
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
    File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\building\build_main.py", line 844, in main
build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
    File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\building\build_main.py", line 791, in build
exec(code, spec_namespace)
    File "C:\Users\******\python_workspace\Test001.spec", line 17, in <module>
noarchive=False)
    File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\building\build_main.py", line 243, in __init__
self.__postinit__()
    File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\building\datastruct.py", line 158, in __postinit__
self.assemble()
    File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\building\build_main.py", line 502, in assemble
module_hook.post_graph()
    File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\building\imphook.py", line 410, in post_graph
self._load_hook_module()
    File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\building\imphook.py", line 377, in _load_hook_module
self.hook_module_name, self.hook_filename)
    File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\compat.py", line 793, in importlib_load_source
return mod_loader.load_module()
    File "<frozen importlib._bootstrap_external>", line 407, in _check_name_wrapper
    File "<frozen importlib._bootstrap_external>", line 907, in load_module
    File "<frozen importlib._bootstrap_external>", line 732, in load_module
    File "<frozen importlib._bootstrap>", line 265, in _load_module_shim
    File "<frozen importlib._bootstrap>", line 696, in _load
    File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
    File "<frozen importlib._bootstrap_external>", line 728, in exec_module
    File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
    File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\hooks\hook-zmq.py", line 18, in <module>
hiddenimports = ['zmq.utils.garbage'] + collect_submodules('zmq.backend')
    File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\utils\hooks\__init__.py", line 624, in collect_submodules
repr(pkg_dir), package))
    File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\utils\hooks\__init__.py", line 83, in exec_statement
return __exec_python_cmd(cmd)
    File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\utils\hooks\__init__.py", line 72, in __exec_python_cmd
txt = exec_python(*cmd, env=pp_env)
    File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\compat.py", line 637, in exec_python
return exec_command(*cmdargs, **kwargs)
    File "c:\programdata\anaconda3\lib\site-packages\PyInstaller\compat.py", line 427, in exec_command
out = out.decode(encoding)
  UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 130: invalid start byte

=========================

Спасибо,

Хиса

1 Ответ

0 голосов
/ 02 октября 2019

Я продолжал исследовать проблемы PyInstaller для решений.

Был отчет, что это было решено переписыванием части 'compat.py', поэтому я попробовал это. В результате исполняемый файл выводился нормально. (Я подтвердил, что он работает правильно на другом компьютере)

Ссылка на сайт, который стал ссылкой, выглядит следующим образом.

https://qiita.com/mamon/items/01e5dc5c24cf9e81b689

Спасибо за ваши комментарии.

Hisa

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