使用以下命令,我会在scrapy
模块内看到名称:
>>>import scrapy
>>>dir(scrapy)
['Field', 'FormRequest', 'Item', 'Request', 'Selector', 'Spider', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '__version__', '_txv', 'exceptions', 'http', 'item', 'link', 'selector', 'signals', 'spiders', 'twisted_version', 'utils', 'version_info']
在documentation中说:
模块是一个包含Python定义和语句的文件。
因此,我尝试查找scrapy
文件以查看其中的定义名称:
$find / -name "scrapy*" -print
/usr/local/lib/python2.7/dist-packages/scrapy
/usr/local/lib/python2.7/dist-packages/scrapy/templates/project/scrapy.cfg
/usr/local/bin/scrapy
/root/tutorial/scrapy.cfg
但是在该文件中,没有类似dir(scrapy)结果的任何名称。
我是python和OO的新手,请尝试进一步了解Scrapy Framework
中的刷新。
答案 0 :(得分:1)
导入模块后,只需再次输入模块名称即可查看与该模块相对应的实际文件
>>> import scrapy
>>> scrapy
<module 'scrapy' from 'venv/scrapy/local/lib/python2.7/site-packages/scrapy/__init__.pyc'>
从上面的输出中,我们可以看到它来自文件'venv/scrapy/local/lib/python2.7/site-packages/scrapy/__init__.pyc'
,而对应的python源文件将为'venv/scrapy/local/lib/python2.7/site-packages/scrapy/__init__.py'
如果在您喜欢的编辑器中打开文件'venv/scrapy/local/lib/python2.7/site-packages/scrapy/__init__.py'
,您会发现它从子模块中导入了很多
# Declare top-level shortcuts
from scrapy.spiders import Spider
from scrapy.http import Request, FormRequest
from scrapy.selector import Selector
from scrapy.item import Item, Field
因此,如果您想查看'Item'
的定义,就可以检查item.py
下的文件venv/scrapy/lib/python2.7/site-packages/scrapy/