首页 > 解决方案 > 当scrapy在conda虚拟环境中时,如何在pycharm中调试scrapy

问题描述

当从 conda 虚拟环境运行 scrappy 时,我正在尝试使用 pycharm 调试 scrapy。

我按照这个链接如何使用 PyCharm 调试 Scrapy 项目,它通常可以工作,但是如果我从 conda 虚拟环境中使用 scrapy,我会得到

导入 http.client ModuleNotFoundError:没有名为“http.client”的模块

在“常规”(venv)环境中,它可以完美运行。

我查了一下,虚拟环境确实有http.client。还导入了同一文件夹中的其他库(例如 hashlib.py)。

这是我正在运行的文件中的代码

from scrapy import cmdline
cmdline.execute("scrapy crawl my_spider".split())

我已经尝试将虚拟环境的路径添加到 PYTHONPATH

更新:我添加了有关如何重现此错误的步骤:

  1. 创建一个 conda 环境 conda create -n testenv1 python=3.7

  2. 安装 scrapy 并创建一个项目和 spider pip install scrapy cd D:\Learn\scrapy scrapy startproject test1 cd test1 scrapy genspider googspid google.com

  3. 在 scrapy 项目的根目录(scrapy.cfg 所在的位置)中创建一个 pycharm 项目,然后从刚刚创建的虚拟环境中选择 python.exe 作为解释器

  4. 按照上面链接的最佳答案,你会得到这个错误 ModuleNotFoundError: No module named 'http.client'

标签: pythonscrapyconda

解决方案


如果您正在创建一个 PyCharm 运行配置来运行 Scrapy,那么该运行配置需要使用相同的虚拟环境;您可以通过Project Settings > Python Interpreter查找(或手动添加)virtualenv 的 Python 可执行文件作为项目的 Python 解释器(或特定运行配置,如果您愿意)来执行此操作。


推荐阅读