我正在尝试将IMAGES_STORE
设置为相对路径,但我收到错误,如果我将IMAGES_STORE
指定为完整路径,则表明其工作正常/home/vaibhav/scrapyprog/comparison/eScraperInterface/images
我得到的错误是link
实际上它给了我RuntimeError: OSError: [Errno 20] Not a directory: '/tmp/eScraper-1371463750-Lm8HLh.egg/images'
错误,但是如果我设置完全IMAGE_STORE路径它工作正常可以有人告诉我如何指定相对路径...因为我需要在各种系统部署这个项目...这就是为什么我需要相对的道路......
import os
#------------------------------------------------------------------------------
projectDirPath = os.path.abspath(os.path.dirname((os.path.dirname(__file__))))
imagesDIRPath = projectDirPath + "/images"
BOT_NAME = 'eScraper'
DOWNLOADER_DEBUG = True
CONCURRENT_REQUESTS = 200
AUTOTHROTTLE_DEBUG = True
AUTOTHROTTLE_ENABLED= True
DEPTH_STATS_VERBOSE = True
SPIDER_MODULES = ['eScraper.spiders']
NEWSPIDER_MODULE = 'eScraper.spiders'
COMMANDS_MODULE = 'eScraper.commands'
ITEM_PIPELINES = ['eScraper.pipelines.EscraperPipeline',
'eScraper.pipelines.MySQLStorePipeline']
IMAGES_STORE = imagesDIRPath
DOWNLOADER_MIDDLEWARES = {
'eScraper.rotate_useragent.RotateUserAgentMiddleware' :400,
'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware' : None
}
#------------------------------------------------------------------------------
我的项目结构:
├── eScraperInterface
│ ├── build
│ │ ├── bdist.linux-i686
│ │ └── lib.linux-i686-2.7
│ │ ├── eScraper
│ │ │ ├── commands
│ │ │ │ ├── __init__.py
│ │ │ │ └── runAllSpiders.py
│ │ │ ├── __init__.py
│ │ │ ├── items.py
│ │ │ ├── pipelines.py
│ │ │ ├── rotate_useragent.py
│ │ │ ├── settings.py
│ │ │ ├── spiders
│ │ │ └── userAgentList.py
│ │ ├── eScraperInterface
│ │ │ ├── __init__.py
│ │ │ ├── settings.py
│ │ │ ├── urls.py
│ │ │ └── wsgi.py
│ │ └── eScraperInterfaceApp
│ │ ├── __init__.py
│ │ ├── models.py
│ │ ├── tests.py
│ │ └── views.py
│ ├── checkImageExist.py
│ ├── eScraper
│ │ ├── commands
│ │ │ ├── __init__.py
│ │ │ ├── __init__.pyc
│ │ │ ├── runAllSpiders.py
│ │ │ └── runAllSpiders.pyc
│ │ ├── __init__.py
│ │ ├── __init__.pyc
│ │ ├── items.py
│ │ ├── items.pyc
│ │ ├── pipelines.py
│ │ ├── pipelines.pyc
│ │ ├── rotate_useragent.py
│ │ ├── rotate_useragent.pyc
│ │ ├── settings.py
│ │ ├── settings.py~
│ │ ├── settings.pyc
│ │ ├── spiders
│ │ ├── userAgentList.py
│ │ └── userAgentList.pyc
│ ├── eScraperInterface
│ │ ├── __init__.py
│ │ ├── __init__.pyc
│ │ ├── settings.py
│ │ ├── settings.pyc
│ │ ├── urls.py
│ │ ├── urls.pyc
│ │ ├── wsgi.py
│ │ └── wsgi.pyc
│ ├── eScraperInterfaceApp
│ │ ├── __init__.py
│ │ ├── __init__.pyc
│ │ ├── models.py
│ │ ├── models.py~
│ │ ├── models.pyc
│ │ ├── tests.py
│ │ └── views.py
│ ├── images
│ ├── __init__.py
│ ├── manage.py
│ ├── project.egg-info
│ │ ├── dependency_links.txt
│ │ ├── entry_points.txt
│ │ ├── PKG-INFO
│ │ ├── SOURCES.txt
│ │ └── top_level.txt
│ ├── scrapy.cfg
│ └── setup.py
├── README.txt
└── README.txt~
答案 0 :(得分:5)
假设您已settings.py
提供eScraperInterface/eScraper/settings.py
:
CUR_DIR = os.path.dirname(os.path.realpath(__file__))
IMAGES_STORE = os.path.join(CUR_DIR, '..', 'images')
希望有所帮助。