scrapyd: как включить файлы в развернутый пакет - PullRequest
0 голосов
/ 08 мая 2020

Я могу запустить локальный поисковый робот, который считывает некоторые данные из локального файла внутри проекта scrapy. Развертывание с scrapyd-deploy завершается ошибкой, поскольку локальный файл почему-то отсутствует в пакете.

внутри проекта scrapy, откройте файл:

with open('imports/filter.csv', newline='') as f:
    for row in csv.reader(f):

setup.py:

from setuptools import setup, find_packages

setup(
    name         = 'test',
    version      = '1.0',
    packages     = find_packages(),
    entry_points = {'scrapy': ['settings = crawler.settings']},
    include_package_data = True,
    package_data={'': ['imports/*.csv']}
)

package_data и include_package_data почему-то не имеют никакого эффекта:

 in GetbidSpider\nFileNotFoundError: [Errno 2] No such file or directory: 'imports/filter.csv'\n"}

Как я могу включать файлы в проект без использования абсолютных путей?

1 Ответ

0 голосов
/ 08 мая 2020

Это решило мою проблему:

package_data={
    'crawler': ['imports/*.csv', 'resources/*',]
},    
entry_points = {'scrapy': ['settings = crawler.settings']},
zip_safe=False,

В сочетании с изменением способа чтения файлов:

import pkgutil
MatFile = pkgutil.get_data('crawler', 'LILAC_Materials.csv')
dataReader = csv.reader(MatFile.decode('utf-8').splitlines(), delimiter=',')
...