Байт-код, скомпилированный Python: невозможно прочитать файл, если присутствует символ не ascii - PullRequest
0 голосов
/ 07 июня 2018

Во-первых, немного предыстории: я работаю в Японии, поэтому папки с японскими символами являются общими (что-то вроде 作業 フ ォ ル working, «рабочая папка»).

У меня есть программа на Python, которую я затем компилируюбайткод.Если я запускаю этот скомпилированный файл из командной строки Windows, он запускается без проблем:

, например:

python.exe C: \ 作業 フ ォ ル ダ \ myProgram.py

однако, после компиляции с помощью следующей команды:

python.exe -OO -m py_compile myProgram.py

Я получаю следующую ошибку:

python.exe C: \ 作業 フ ォ ル ダ \ myCompiledProgram.pyc
python: Невозможно повторно открыть файл pyc

, если я захожу в папку 作業 フ ォ ル ダ ивыполнить так:

python.exe myCompiledProgram.pyc

Работает без проблем.Тем не менее, я хотел бы, чтобы он запускался в случае, если я даю Абсолютный путь, и, кроме того, я хочу передать пути к файлам в качестве параметров, что также приводит к ошибкам, таким как:

RuntimeError: Невозможно открыть C:\ 作業 フ ォ ル ダ \ somefile.txt

Почему это происходит только после компиляции?Есть ли способ исправить это?


  • Если уместно, я использую Windows 8.1, но происходит и на компьютерах с Windows 10, версия Python 3.6, установленная с Anaconda3 5.10

1 Ответ

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

A связанный ответ предполагает, что исправление заключается в перемещении сценария из каталогов с символами, отличными от ASCII.Соединения / символические ссылки также можно использовать для «подделки» имен каталогов, не относящихся к ASCII, но это значительно сложнее.

...