命令提示符下运行python的语法错误

问题描述:

在windows命令提示符下运行python时出现此语法错误。命令提示符下运行python的语法错误

syntaxError

即使我什么都不键入并只需点击进入它仍然有语法错误。我唯一能做的就是Ctrl + Z退出。 (exit()does not work)

命令提示符从bat脚本启动,该脚本首先设置一堆env vars然后启动cmd。这个bat文件是通过子进程或os.system从python gui调用的(两者都有问题)。

bat文件,成立于以下方式:

集PYTHONPATH = \一些\路径

...其它更多的环境变量设置(这是本 “定制” 的CMD

目的

启动/ d “一些/位置”, “CMD”

如果我直接双击它运行良好的bat文件。

运行echo%PYTHONPATH%表示在推出的这两种情况下都正确的路径(同为其他ENV瓦尔)

我想从一个Python GUI启动它为了方便与设置的所有环境的路径。

任何想法是怎么回事?

+0

你有没有做任何与怪异字符编码或终端的行为? – user2357112

+0

不是我所知道的。 启动过程为1行: subprocess.Popen( '路径\到\ bat.bat',壳=真) 蝙蝠是作为说明above.THe路径是集合是: PYTHONPATH = myCustomPaths PATH =%PATH% ; gitPathForCallingAGit.exe 这就是它的环境。没有碰过别的东西。 – Mafster

+1

你用什么命令启动Python?这种行为看起来像您使用了'-u'命令行选项,它与Windows上的标准REPL不兼容。它把'stdin'设置为二进制模式。因此,来自控制台输入的CRLF不会被转换为REPL需要的Unix风格LF行尾。 – eryksun

“解决”它,但不完全解释它对我来说。 @eryksun指出我正确的方向,谢谢!

删除var PYTHONUNBUFFERED为我做了。

set PYTHONUNBUFFERED= 

有点得到它,但不是完全...希望消除它不会导致更多的问题! :P这实际上只是一个测试环境,所以实际产品不会以这种方式运行。

Python Interactive Interpreter always returns "Invalid syntax" on Windows

+0

设置该环境变量与传递'-u'命令行选项相同。您可以*暂时*启用二进制模式来防止损坏管道到'stdin'的二进制流,但将其设置为永久中断Windows上的REPL。 – eryksun

+0

没错,在这种情况下,它在会话中是暂时的。到目前为止还没有遇到任何打嗝。我想知道的是-u是如何通过的。我没有设置它.. – Mafster

+0

你的意思是如何设置'PYTHONUNBUFFERED'环境变量?打开一个新的命令提示符并检查'set PYTHON'以查看以“PYTHON”开头的所有环境变量的列表。如果已设置,则使用系统环境变量编辑器将其删除。 – eryksun