Windows无法在dir中找到scrapy文件

时间:2013-06-27 11:36:32

标签: python windows scrapy

所以我得到了一个简单的跑步者脚本,它将使用Popen来调用蜘蛛。 跑步者脚本如下:

from subprocess import Popen
import time
def runSpider():
    p = Popen(["scrapy", "crawl", "spider1"], 
        cwd="C:\Users\Kasutaja\Desktop\scrapyTest")
    stdout, stderr = p.communicate()
    time.sleep(15)

runSpider()

目录是这样的:

 -----scrapyTest: 
 --------------------scrapyTest[folder]: spider[folder], items.py, pipelines.py, settings.py
 --------------------runner.py
 --------------------scrapy.cfg

当我从cmd行运行时,蜘蛛从dir运行完美: C:\ Users \ Kasutaja \ Desktop \ scrapyTest

当我运行我的runner.py脚本时,我得到:

  

系统找不到指定的文件

编辑:

将Popen改为此后:

p = Popen(["C:\Users\Kasutaja\Desktop\scrapyTest","scrapy", "crawl", "spider1"])

我收到错误:

    C:\Users\Kasutaja\Desktop\scrapyTest>python runner.py
Traceback (most recent call last):
  File "runner.py", line 13, in <module>
    runSpider()
  File "runner.py", line 8, in runSpider
    p = Popen(["C:\Users\Kasutaja\Desktop\scrapyTest","scrapy", "crawl", "spider
1"])
  File "C:\Python27\lib\subprocess.py", line 679, in __init__
    errread, errwrite)
  File "C:\Python27\lib\subprocess.py", line 896, in _execute_child
    startupinfo)
WindowsError: [Error 5] Access is denied

如果重要,我有管理员权限。 我现在也尝试过,使用cmd专门从开始菜单和管理员权限打开脚本,但仍然会得到相同的错误。

1 个答案:

答案 0 :(得分:0)

来自文档

  

如果cwd不是None,则子项的当前目录将更改为   cwd在执行之前。 请注意,不考虑此目录   在搜索可执行文件时,您无法指定程序的路径   相对于cwd。 (强调我的)

对我来说,这意味着你必须做一些像

这样的事情
Popen(["C:\Users\Kasutaja\Desktop\scrapyTest\scrapy", "crawl", "spider1"])

这将执行带有参数scrapycrawl的程序spider1