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

时间:2018-06-07 01:45:56

标签: python python-3.x bytecode

首先,有点背景:我在日本工作,所以带有日文字符的文件夹很常见(比如作业フォルダ,“工作文件夹”)。

我有一个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 :(得分:1)

related answer建议修复是将脚本移出带有非ASCII字符的目录。连接符/符号链接也可用于“伪造”非ASCII目录名称,但这要复杂得多。