Python脚本输出未在CMD中显示

6

在学习Scrapy教程这里时,我注意到Python脚本没有在Windows命令提示符中输出任何内容。

我检查了路径环境变量,确认“c:\python27”和“c:\python27\Scripts”都已包含。并且我相信我成功安装了Scrapy和所需的依赖项。

我能够跟随教程一直学到在Shell中尝试选择器。在那个点之前,大多数事情都如预期一样进行:输出文件被按预期创建;然而,没有控制台输出。根据教程,我应该看到类似以下内容:

2014-01-23 18:13:07-0400 [scrapy] INFO: Scrapy started (bot: tutorial)
2014-01-23 18:13:07-0400 [scrapy] INFO: Optional features available: ...
...

起初我没有注意到控制台没有输出,然后按照教程尝试启动shell:

...\tutorial\>scrapy shell "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/"

...\tutorial\>

没有输出,但在提示重新出现之前会有一段暂停时间,所以显然正在思考……

我在Google和这里的SO上搜索过,但没有找到解决方案。不过,在诊断此问题的过程中,我注意到其他应该输出到控制台的脚本也没有这样做(python.exe除外)。

例如,如预期所示:

C:\>python --version

导致结果如下:

Python 2.7.6

另一方面,我从pip中什么也得不到:
C:\>pip --version

C:\>

Pip已安装。我可以将输出重定向到文本文件:

C:\>pip list 1>output.txt 2>&1    

C:\>

生成的文本文件包括如下内容,与预期一致:
...
nose (1.3.4)
numpy (1.8.1)
pip (6.0.8)
...

我保存了一个名为'time.py'的脚本,里面包含以下内容:

import datetime
print datetime.datetime.now()

而且运行它很好:

...\Desktop>time.py
2015-02-28 21:23:18.088000

...\Desktop>

现在我彻底困惑了。我该如何让pip、Scrapy等输出到Windows命令提示符?提前谢谢!


嗯...你考虑过使用Cygwin吗?或者在你的Windows电脑上运行一个Linux虚拟机,使用VirtualBox或VMplayer? - Red Cricket
@RedCricket - 我以前没有使用过Cygwin或虚拟机 - 我明天早上会阅读相关资料;感谢您的建议。 - Dave G
使用 .exe 可以更普遍地运行脚本,因为它直接通过 Win32 CreateProcess 工作,而 .py 脚本只能间接地通过 ShellExecuteEx 运行。.exe 文件是由 setuptools 和 pip 创建的,因此您应该尝试更新到最新版本:python -m pip install -U setuptools pip。然后重新安装 scrapy。 - Eryk Sun
@RedCricket 谢谢;我已经更新/重新安装了,但问题仍未解决。 - Dave G
抱歉!出现了错误。感谢 @eryksun! - Dave G
显示剩余2条评论
2个回答

1

顺便说一下,你说运行“pip --version”后没有任何显示,我认为这意味着你没有正确安装Python,安装Python后pip应该会自动安装。提醒一下,请确保将正确的Python路径设置到计算机系统路径中,并将“path”变量设置为正确的Python安装路径。
在我看来,你应该卸载Python并重新安装。如果有问题请告诉我。


是的,没有显示任何内容;但是,我可以使用“1>output.txt 2>&1”将输出重定向到文本文件。该文件的内容是“pip 6.0.8 from C:\Python27\lib\site-packages (python 2.7)”。我同意这看起来是进行完全卸载和重新安装的时候了。我今天早上这样做了,Python新安装程序运行得很好。感谢您的建议。 - Dave G

0

我认为你可能需要一个虚拟机,可以看看Vagrant

你可以在Linux上设置整个Python环境,并在Windows上使用Vagrant软件包。
这是一个非常棒的工具。


感谢您的输入;看起来非常有趣! - Dave G
虽然这可能作为一种解决方法有些用处,但它并没有提供任何关于当前问题的见解。 - tripleee

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