Python 已编译的字节码:如果存在非 ascii 字符,则无法读取文件
Python compiled bytecode: Unable to read file if non-ascii character are present
首先,介绍一些背景知识:我在日本工作,所以带有日文字符的文件夹很常见(类似于作业フォルド,"working folder")。
我有一个 python 程序,然后将其编译为字节码。如果我从 windows 命令行执行这个编译文件,它 运行 没有问题:
例如:
python.exe C:\作業フォルダ\myProgram.py
然而,一旦使用以下命令编译:
python.exe -OO -m py_compile myProgram.py
我收到以下错误:
python.exe C:\作業フォルダ\myCompiledProgram.pyc
python: Can't reopen pyc file
如果我进入作业フォルド文件夹并执行如下:
python.exe myCompiledProgram.pyc
运行没有问题。但是,如果我给出绝对路径,我希望它为 运行,而且我想将文件路径作为参数传递,这也会产生如下错误:
RuntimeError: Unable to open C:\作業フォルダ\somefile.txt
为什么只有编译后才会出现这种情况?有办法解决吗?
- 如果相关,我正在使用 windows 8.1,但也发生在 windows 10 台计算机上,Python 版本为 3.6,安装了 Anaconda3 5.10
A related answer 建议解决方法是将脚本移出具有非 ASCII 字符的目录。 Junctions/symlinks 也可以用于 'fake' 非 ASCII 目录名,但要复杂得多。
首先,介绍一些背景知识:我在日本工作,所以带有日文字符的文件夹很常见(类似于作业フォルド,"working folder")。
我有一个 python 程序,然后将其编译为字节码。如果我从 windows 命令行执行这个编译文件,它 运行 没有问题:
例如:
python.exe C:\作業フォルダ\myProgram.py
然而,一旦使用以下命令编译:
python.exe -OO -m py_compile myProgram.py
我收到以下错误:
python.exe C:\作業フォルダ\myCompiledProgram.pyc
python: Can't reopen pyc file
如果我进入作业フォルド文件夹并执行如下:
python.exe myCompiledProgram.pyc
运行没有问题。但是,如果我给出绝对路径,我希望它为 运行,而且我想将文件路径作为参数传递,这也会产生如下错误:
RuntimeError: Unable to open C:\作業フォルダ\somefile.txt
为什么只有编译后才会出现这种情况?有办法解决吗?
- 如果相关,我正在使用 windows 8.1,但也发生在 windows 10 台计算机上,Python 版本为 3.6,安装了 Anaconda3 5.10
A related answer 建议解决方法是将脚本移出具有非 ASCII 字符的目录。 Junctions/symlinks 也可以用于 'fake' 非 ASCII 目录名,但要复杂得多。