Python编译字节码:如果存在非ASCII字符,则无法读取文件

4

首先,简要介绍一下:我在日本工作,因此带有日语字符的文件夹很常见(例如 作業フォルダ,即“工作文件夹”)。

我编写了一个 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 安装的。
1个回答

1

一篇相关答案建议解决方法是将脚本移出包含非ASCII字符的目录。可以使用联接/符号链接来“伪造”非ASCII目录名称,但这要复杂得多。


是的,那似乎是唯一的方法。所以我通过将程序路径设置为相对路径而不是绝对路径来解决了这个问题。 - Mario Chapa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接