不能 运行 Django 中的 Scrapy 项目
Can't run Scrapy project in Django
这是我的文件夹布局:
- my_django_project
- 项目
- 项目
- __init__.py
- settings.py
- urls.py
- wsgi.py
- 人
- 管理层
- __init__.py
- 命令
- __init__.py
- scrapy.py
- 迁移
- __init__.py
- admin.py
- models.py
- tests.py
- views.py
- scrapy_project
- scrapy_project
- 蜘蛛
- __init__.py
- my_scraper.py
- __init__.py
- items.py
- pipelines.py
- settings.py
我一直在按照本教程进行操作:Access django models inside of Scrapy
而且我什么都跟进了,但我仍然无能为力。
每次我 运行 python manage.py scrapy crawl my_scraper
它都会给我同样的错误:
ImportError: No module named scrapy_project.settings
现在我在 Django 中导入设置 settings.py
:
import os
os.environ['SCRAPY_SETTINGS_MODULE'] = 'scrapy_project.settings'
我尝试过不同的方法。现在我已经能够将 scrapy 与 Django 模型连接起来,但我希望能够 运行 来自 Django 的 scrapy 项目。
这是我在 commands
文件夹中的 scrapy.py
:
from __future__ import absolute_import
from django.core.management.base import BaseCommand
class Command(BaseCommand):
def run_from_argv(self, argv):
self._argv = argv
self.execute()
def handle(self, *args, **options):
from scrapy.cmdline import execute
execute(self._argv[1:])
据我了解,您需要将内部 scrapy_project
包向上移动一层。
这是我的文件夹布局:
- my_django_project
- 项目
- 项目
- __init__.py
- settings.py
- urls.py
- wsgi.py
- 人
- 管理层
- __init__.py
- 命令
- __init__.py
- scrapy.py
- 迁移
- __init__.py
- admin.py
- models.py
- tests.py
- views.py
- 管理层
- scrapy_project
- scrapy_project
- 蜘蛛
- __init__.py
- my_scraper.py
- __init__.py
- items.py
- pipelines.py
- settings.py
- 蜘蛛
- scrapy_project
- 项目
- 项目
我一直在按照本教程进行操作:Access django models inside of Scrapy
而且我什么都跟进了,但我仍然无能为力。
每次我 运行 python manage.py scrapy crawl my_scraper
它都会给我同样的错误:
ImportError: No module named scrapy_project.settings
现在我在 Django 中导入设置 settings.py
:
import os
os.environ['SCRAPY_SETTINGS_MODULE'] = 'scrapy_project.settings'
我尝试过不同的方法。现在我已经能够将 scrapy 与 Django 模型连接起来,但我希望能够 运行 来自 Django 的 scrapy 项目。
这是我在 commands
文件夹中的 scrapy.py
:
from __future__ import absolute_import
from django.core.management.base import BaseCommand
class Command(BaseCommand):
def run_from_argv(self, argv):
self._argv = argv
self.execute()
def handle(self, *args, **options):
from scrapy.cmdline import execute
execute(self._argv[1:])
据我了解,您需要将内部 scrapy_project
包向上移动一层。