(Python)在一个模块中从__init__导入参数以在另一个模块中使用?

克里斯蒂安·TL

我对Python真的很陌生,并且一直与Scrapy结合使用它来制作一些Web搜寻器。从终端运行Spider时,我可以使用“ -a NAME = VALUE”设置参数,这对于将其定向到不同域特别有用。我正在尝试将“域”参数用作另一个模块中的变量,但被卡住了。这是我要从中导入参数的模块的一部分:

class Spider(spiders.CrawlSpider):
    name = 'changelog'
    rules = (spiders.Rule(SgmlLinkExtractor(), callback='parse_item', follow=True),)

    def __init__(self, domain='WHAT_IM_TRYING_TO_FIND', *args, **kwargs):
        super(Spider, self).__init__(*args, **kwargs)
        self.domain = domain
        self.allowed_domains = [domain]
        self.start_urls = [
            'http://%s/' % domain,
            'http://%s/index.html' % domain,
            'http://%s/index.php' % domain,
        ]

在一个单独的模块中,尝试类似

from MyModule import Spider

variable = Spider.domain

或者

variable = __import __ ('MyModule').Spider.domain

给我

Class 'Spider' has no 'domain' member

任何指导将不胜感激!

Scrapy的文件结构如下所示:

myproject/
__init __.py
items.py
pipelines.py
settings.py
spiders/
    __init __.py
    spider.py
布伦·巴恩

domain是Spider实例的属性,而不是Spider类的属性。只有在某处domain具有Spider创建实例的情况下,您才能访问

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python导入模块在另一个文件中

在模块中使用另一个模块:导入与在路由中使用loadChildren

使用从另一个导入中导入的模块

如何导入和使用从自身中的另一个文件导入类的python模块?

在python中,有关导入一个模块并导入另一个模块的问题?

从另一个模块导入的 Python 脚本

将python模块导入另一个目录

从另一个包导入python模块

Python将文件模块导入另一个

导入模块,该模块在Python中导入另一个模块

从我的模块中的另一个文件夹在 python 中导入模块函数

在另一个模块中使用一个Shiny模块的变量值

在Terraform的另一个模块中使用一个模块局部变量

Terraform:在另一个模块中使用一个模块的输出

在另一个模块中使用一个模块

在另一个模块中使用类/函数

如何在Rust货运项目中使用另一个模块中的一个模块?

如何在entryComponents另一个模块中使用模块中的组件?

使用Python 3从Jupyter Notebook中相对导入的另一个目录中的模块导入本地函数

从另一个仓库导入一个python模块

从同一级别的另一个模块导入Python模块

为什么我不能在另一个导入语句中使用作为别名导入的 python 中的模块?

将使用argparse的python脚本/模块导入另一个python脚本

使用另一个模块中的组件

如何从Python中的另一个项目导入模块?

将一个组件从模块导入到另一个模块的组件

从模块中导入函数的Python导入错误(ModuleNotFoundError),该模块从另一个模块中导入类

角导入在一个模块中效果很好,但在另一个模块中不起作用

解决另一个模块中的模块路径