在学习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命令提示符?提前谢谢!
CreateProcess
工作,而 .py 脚本只能间接地通过ShellExecuteEx
运行。.exe 文件是由 setuptools 和 pip 创建的,因此您应该尝试更新到最新版本:python -m pip install -U setuptools pip
。然后重新安装 scrapy。 - Eryk Sun