使用外部包部署scrapyd spider

2024-05-14 06:19:05 发布

您现在位置:Python中文网/ 问答频道 /正文

scrapyd文档包括以下注释:

scrapyd-deploy won’t deploy anything outside the project module...

这是否意味着我不能从spider中导入站点包?在

我的spider依赖于外部库,比如MySQL python和tldextract。我必须在项目模块中包含这些库并从包含库(而不是站点包)导入吗?在


Tags: 模块the项目文档project站点mysqldeploy
2条回答

我认为Deploying your project文档段落应该澄清一些事情:

Finally, to deploy your project use:

scrapyd-deploy scrapyd -p project1

This will eggify your project and upload it to the target, printing the JSON response returned from the Scrapyd server. If you have a setup.py file in your project, that one will be used. Otherwise a setup.py file will be created automatically (based on a simple template) that you can edit later.

{{2}中应该自动安装{cd2}中的其他依赖项。在

我发现了一些证据(例如gitHub帖子herehere)建议通过'设置.py'不支持(将来也不支持)。由于我在docker容器中运行scrapyd,所以我的解决方法是:

  1. 通过调用Dockerfile中的pip install <package>,确保必要的外部Python包安装在scrapyd容器中。在
  2. 在容器中创建一个绑定挂载,该挂载链接到scrapy项目目录外部的任何自定义模块。我在docker compose文件中为我的scrapyd服务输入了以下行(注意,挂载点必须在容器的'/tmp'目录中创建):
volumes:         
  - custom_module:/tmp/custom_module

相关问题 更多 >