Введение
Я разработал функцию AWS Lambda с использованием контейнера Dockerfile, но постоянно сталкиваюсь с ошибкой:
Unable to import module 'main': attempted relative import beyond top-level package"
Он даже не запускается.
Какие изменения мне нужно внести, чтобы он начал работать?
Мой Dockerfile
FROM public.ecr.aws/lambda/python:3.11
COPY source/requirements.txt ${LAMBDA_TASK_ROOT}
#COPY main.py ${LAMBDA_TASK_ROOT}
RUN pip install -r requirements.txt
COPY source ${LAMBDA_TASK_ROOT}/source/
CMD ["source.main.real_estate_scraper"]
Файл main.py
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
from real_estate_prices.spiders.kolej_na_19 import KolejNa19Spider
from real_estate_prices.spiders.modern_mokotow import ModernMokotowSpider
from real_estate_prices.spiders.stacja_wola import StacjaWolaSpider
from real_estate_prices.spiders.zelazna_54 import Zelazna54Spider
def real_estate_scraper(event, contxt):
process = CrawlerProcess(get_project_settings())
process.crawl(KolejNa19Spider)
process.crawl(ModernMokotowSpider)
process.crawl(StacjaWolaSpider)
process.crawl(Zelazna54Spider)
process.start()
Структура проекта
image
├─── Dockerfile
└─── source
├── requirements.txt
├── gcp_key.json
├── main.py
├── scrapy.cfg
└── real_estate_prices
├── __init__.py
a lot more but now it inot relevant
Подробнее здесь: https://stackoverflow.com/questions/791 ... el-package
Функция AWS Lambda попыталась выполнить относительный импорт за пределы пакета верхнего уровня ⇐ Python
Программы на Python
1731200482
Anonymous
[b]Введение[/b]
Я разработал функцию AWS Lambda с использованием контейнера Dockerfile, но постоянно сталкиваюсь с ошибкой:
Unable to import module 'main': attempted relative import beyond top-level package"
Он даже не запускается.
Какие изменения мне нужно внести, чтобы он начал работать?
[b] Мой Dockerfile[/b]
FROM public.ecr.aws/lambda/python:3.11
COPY source/requirements.txt ${LAMBDA_TASK_ROOT}
#COPY main.py ${LAMBDA_TASK_ROOT}
RUN pip install -r requirements.txt
COPY source ${LAMBDA_TASK_ROOT}/source/
CMD ["source.main.real_estate_scraper"]
[b]Файл main.py[/b]
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
from real_estate_prices.spiders.kolej_na_19 import KolejNa19Spider
from real_estate_prices.spiders.modern_mokotow import ModernMokotowSpider
from real_estate_prices.spiders.stacja_wola import StacjaWolaSpider
from real_estate_prices.spiders.zelazna_54 import Zelazna54Spider
def real_estate_scraper(event, contxt):
process = CrawlerProcess(get_project_settings())
process.crawl(KolejNa19Spider)
process.crawl(ModernMokotowSpider)
process.crawl(StacjaWolaSpider)
process.crawl(Zelazna54Spider)
process.start()
[b]Структура проекта[/b]
image
├─── Dockerfile
└─── source
├── requirements.txt
├── gcp_key.json
├── main.py
├── scrapy.cfg
└── real_estate_prices
├── __init__.py
a lot more but now it inot relevant
Подробнее здесь: [url]https://stackoverflow.com/questions/79173700/aws-lambda-function-attempted-relative-import-beyond-top-level-package[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия