Почему Python не может увидеть корневую директорию проекта scrapy - PullRequest
0 голосов
/ 12 июня 2019

У меня есть это folder_tree и я хочу импортировать класс из runner.py в crawlers.py

from scraper.runner import Runner

runner = Runner([{'name': 'my_name', 'urls': ["https://www.exaple.com/"]}])
runner.crawl()

но я получил ошибку

Traceback (most recent call last):
  File "./scraper/crawlers/actor_crawler.py", line 3, in <module>
    from scraper.runner import Runner
ModuleNotFoundError: No module named 'scraper'

Также я попробовал относительный импорт:

from ..runner import Runner

И получил это:

ValueError: attempted relative import beyond top-level package

1 Ответ

0 голосов
/ 12 июня 2019

Я обнаружил, что следующая ссылка невероятно полезна для понимания того, как Python импортирует.

Безошибочный способ гарантировать, что ваш модуль может быть импортирован, хотя и добавляет его в os.syspath. Попробуйте добавить следующее в начало вашего скрипта:

import os
import sys
sys.path.append(/path/to/scraper/scraper/runner.py)

from scraper.runner import Runner

runner = Runner([{'name': 'my_name', 'urls': ["https://www.exaple.com/"]}])
runner.crawl()
...