Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用外部包部署scrapyd spider_Python_Scrapy_Scrapyd - Fatal编程技术网

Python 使用外部包部署scrapyd spider

Python 使用外部包部署scrapyd spider,python,scrapy,scrapyd,Python,Scrapy,Scrapyd,这些文件包括以下注释: scrapyd deploy不会在项目模块之外部署任何内容 这是否意味着我无法从spider中的站点包导入 我的spider依赖于外部库,如MySQL、python和tldextract。我必须在项目模块中包含这些库,并从包含库导入,而不是从站点包导入吗?我认为文档段落应该澄清一些问题: 最后,要部署项目,请使用: scrapyd-deploy scrapyd -p project1 这将激励你的项目和工作 将其上载到目标,打印从 Scrapyd服务器。如果您的项目中有

这些文件包括以下注释:

scrapyd deploy不会在项目模块之外部署任何内容

这是否意味着我无法从spider中的站点包导入

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

我认为文档段落应该澄清一些问题:

最后,要部署项目,请使用:

scrapyd-deploy scrapyd -p project1
这将激励你的项目和工作 将其上载到目标,打印从 Scrapyd服务器。如果您的项目中有一个
setup.py
文件,那么 将使用。否则将自动创建
setup.py
文件 (基于简单模板),您可以稍后编辑

换句话说,您将/应该拥有
MySQL-python
tldextract
或其他在部署过程中自动安装的依赖项。

我发现一些证据(即gitHub帖子和)表明不支持(也不会)通过“setup.py”文件安装自定义软件包。因为我在docker容器中运行scrapyd,所以我的解决方法是:

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