加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – PyCharm IDE断点在子进程调用中不起作用

发布时间:2020-12-20 13:15:39 所属栏目:Python 来源:网络整理
导读:我有一个Flask项目运行与Scrapy蜘蛛的子进程调用: class Utilities(object): @staticmethod def scrape(inputs): job_id = str(uuid.uuid4()) project_folder = os.path.abspath(os.path.dirname(__file__)) subprocess.call(['scrapy','crawl',"ExampleCra
我有一个Flask项目运行与Scrapy蜘蛛的子进程调用:

class Utilities(object):

    @staticmethod
    def scrape(inputs):
        job_id = str(uuid.uuid4())
        project_folder = os.path.abspath(os.path.dirname(__file__))
        subprocess.call(['scrapy','crawl',"ExampleCrawler","-a","inputs=" + str(inputs),"-s","JOB_ID=" + job_id],cwd="%s/scraper" % project_folder)
        return job_id

即使我在项目的Python调试器中启用了“在调试时自动附加到子进程”,但蜘蛛内部的断点也不起作用.第一个再次起作用的断点是返回job_id的断点.

这是蜘蛛代码的一部分,我希望断点能够工作:

from scrapy.http import FormRequest
from scrapy.spiders import Spider
from scrapy.loader import ItemLoader
from Handelsregister_Scraper.scraper.items import Product
import re


class ExampleCrawler(Spider):
    name = "ExampleCrawler"

    def __init__(self,inputs='',*args,**kwargs):
        super(ExampleCrawler,self).__init__(*args,**kwargs)
        self.start_urls = ['https://www.example-link.com']
        self.inputs = inputs

    def parse(self,response):
        yield FormRequest(self.start_urls[0],callback=self.parse_list_elements,formdata=self.inputs)

除了启用我所做的选项之外,我找不到任何解决方案.

有关如何在蜘蛛内部获得断点的任何建议吗?

解决方法

调试器不起作用,因为它不是子进程,而是外部调用.请参阅 this answer以获取可能的解决方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读