Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python编译字节码:如果存在非ascii字符,则无法读取文件_Python_Python 3.x_Bytecode - Fatal编程技术网

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

Python编译字节码:如果存在非ascii字符,则无法读取文件,python,python-3.x,bytecode,Python,Python 3.x,Bytecode,首先,有一点背景:我在日本工作,所以带有日语字符的文件夹很常见(比如作業フォルダ, “工作文件夹”) 我有一个python程序,然后编译成字节码。如果我从windows命令行执行此编译文件,它将顺利运行: 例如: python.exe C:\作業フォルダ\myProgram.py 但是,使用以下命令编译后: python.exe-OO-mpy_编译myProgram.py 我得到以下错误: python.exe C:\作業フォルダ\myCompiledProgram.pyc python:无法重

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

我有一个python程序,然后编译成字节码。如果我从windows命令行执行此编译文件,它将顺利运行:

例如:

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

但是,使用以下命令编译后:

python.exe-OO-mpy_编译myProgram.py

我得到以下错误:

python.exe C:\作業フォルダ\myCompiledProgram.pyc
python:无法重新打开pyc文件

如果我进入作業フォルダ 文件夹并按如下方式执行:

python.exe myCompiledProgram.pyc

它运行没有问题。但是,我希望它在我给出绝对路径的情况下运行,而且我希望将文件路径作为参数传递,这也会产生如下错误:

运行时错误:无法打开C:\作業フォルダ\somefile.txt

为什么只有在编译之后才会发生这种情况?有办法解决吗


  • 如果相关的话,我使用的是windows 8.1,但也发生在windows 10计算机上,Python版本是3.6,安装了Anaconda3 5.10

A建议修复方法是将脚本从包含非ASCII字符的目录中移出。连接/symlinks也可以用来“伪造”非ASCII目录名,但这要复杂得多。

是的,这似乎是唯一的办法。所以我通过将程序的路径作为相对路径而不是绝对路径来解决它。