Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.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 jupyter笔记本电脑pyinstaller exe无法读取文件_Python_Jupyter Notebook_Pyinstaller - Fatal编程技术网

Python jupyter笔记本电脑pyinstaller exe无法读取文件

Python jupyter笔记本电脑pyinstaller exe无法读取文件,python,jupyter-notebook,pyinstaller,Python,Jupyter Notebook,Pyinstaller,因此,我使用anaconda/jupyter笔记本编写了一个python脚本。 脚本在这个环境中运行时一切正常。 然后,我会复制脚本并将其粘贴到一个文件中,以.py扩展名保存它。 然后,在命令提示符下运行: pyinstaller -w -F myProgram.py 但是,从jupyter笔记本运行时,.exe文件的行为似乎与脚本不同。 经过一些故障排除,我发现以下是问题的原因。 我正在读取的文件有一些特殊字符(立方符号) 将代码更改为以下内容后,现在.exe也可以工作 for line i

因此,我使用anaconda/jupyter笔记本编写了一个python脚本。 脚本在这个环境中运行时一切正常。 然后,我会复制脚本并将其粘贴到一个文件中,以.py扩展名保存它。 然后,在命令提示符下运行:

pyinstaller -w -F myProgram.py
但是,从jupyter笔记本运行时,.exe文件的行为似乎与脚本不同。 经过一些故障排除,我发现以下是问题的原因。 我正在读取的文件有一些特殊字符(立方符号)

将代码更改为以下内容后,现在.exe也可以工作

for line in open(os.path.join(AMSFiles, file), "rb"):
    XMLFile.append(line.decode("utf-8", "ignore"))
我的问题是,为什么我可以运行jupyter笔记本中的第一行代码而没有任何错误,而不是它的结果.exe?我希望特殊字符在这两种情况下都给出一个错误,有什么不同


关于,

您正在禁用带有
-w
标志的控制台输出,这就是为什么控制台中没有任何错误。请尝试删除该标志,然后再试一次。您好,先生,我的意思是该脚本在jupyter中运行良好(这是在使用-w标志运行pyinstaller之前)。然后,当我将脚本转换为.exe文件时,它会在某些特殊字符上出错。我不知道为什么即使是同一个脚本,行为也会有所不同?所讨论的行是我提到的前两行:对于open中的行(os.path.join(AMSFiles,file),“r”):“XMLFile.append(line)”按照我所说的运行代码并输入确切的错误。您好,先生,谢谢,我现在学到了一个更好的做法。但就问题本身而言,我现在似乎无法复制它,奇怪的是:S
for line in open(os.path.join(AMSFiles, file), "rb"):
    XMLFile.append(line.decode("utf-8", "ignore"))