2013-01-19 171 views
0

我想部署scydyd的scrapy項目。我可以通過使用部署scrapy項目

cd /var/www/api/scrapy/dirbot 
scrapy crawl dmoz 

正常運行我的項目這是一步一步我:

1 /我運行

aptitude install scrapyd-0.16 

scrapy version -v 
>> Scrapy : 0.16.3 
lxml : 3.0.2.0 
libxml2 : 2.7.8 
Twisted : 12.2.0 
Python : 2.7.3 (default, Aug 1 2012, 05:14:39) - [GCC 4.6.3] 
Platform: Linux-3.2.0-31-virtual-x86_64-with-Ubuntu-12.04-precise 

2 /安裝scrapyd 3 /我在/ var/www/api/scrapy/dirbot(http://domain.com/api/scrapy/dirbot)上有項目scrapy。 I編輯scrapy.cfg

[settings] 
default = dirbot.settings 
[deploy:scrapyd2] 
url = http://domain.com/api/scrapy/dirbot/ 
username = vu 
password = hoang 

4 /我用部署命令來測試

scrapy deploy -l 
>> scrapyd2    http://domain.com/api/scrapy/dirbot/ 

5 /但是,當我使用命令

scrapy deploy -L scrapyd2 
>> /usr/local/lib/python2.7/dist-packages/Scrapy-0.16.3-py2.7.egg/scrapy/settings/deprecated.py:23: ScrapyDeprecationWarning: You are using the following settings which are deprecated or obsolete (ask [email protected] for alternatives): 
    BOT_VERSION: no longer used (user agent defaults to Scrapy now) 
    warnings.warn(msg, ScrapyDeprecationWarning) 
Traceback (most recent call last): 
    File "/usr/local/bin/scrapy", line 5, in <module> 
    pkg_resources.run_script('Scrapy==0.16.3', 'scrapy') 
    File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 499, in run_script 
    self.require(requires)[0].run_script(script_name, ns) 
    File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1235, in run_script 
    execfile(script_filename, namespace, namespace) 
    File "/usr/local/lib/python2.7/dist-packages/Scrapy-0.16.3-py2.7.egg/EGG-INFO/scripts/scrapy", line 4, in <module> 
    execute() 
    File "/usr/local/lib/python2.7/dist-packages/Scrapy-0.16.3-py2.7.egg/scrapy/cmdline.py", line 131, in execute 
    _run_print_help(parser, _run_command, cmd, args, opts) 
    File "/usr/local/lib/python2.7/dist-packages/Scrapy-0.16.3-py2.7.egg/scrapy/cmdline.py", line 76, in _run_print_help 
    func(*a, **kw) 
    File "/usr/local/lib/python2.7/dist-packages/Scrapy-0.16.3-py2.7.egg/scrapy/cmdline.py", line 138, in _run_command 
    cmd.run(args, opts) 
    File "/usr/local/lib/python2.7/dist-packages/Scrapy-0.16.3-py2.7.egg/scrapy/commands/deploy.py", line 76, in run 
    f = urllib2.urlopen(req) 
    File "/usr/lib/python2.7/urllib2.py", line 126, in urlopen 
    return _opener.open(url, data, timeout) 
    File "/usr/lib/python2.7/urllib2.py", line 406, in open 
    response = meth(req, response) 
    File "/usr/lib/python2.7/urllib2.py", line 519, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/usr/lib/python2.7/urllib2.py", line 444, in error 
    return self._call_chain(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 378, in _call_chain 
    result = func(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 527, in http_error_default 
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 
urllib2.HTTPError: HTTP Error 404: Not Found 

scrapy deploy scrapyd2 -p project 
>> /usr/local/lib/python2.7/dist-packages/Scrapy-0.16.3-py2.7.egg/scrapy/settings/d   eprecated.py:23: ScrapyDeprecationWarning: You are using the following settings   which are deprecated or obsolete (ask [email protected] for alternat   ives): 
    BOT_VERSION: no longer used (user agent defaults to Scrapy now) 
    warnings.warn(msg, ScrapyDeprecationWarning) 
Building egg of project-1358597244 
'build/scripts-2.7' does not exist -- can't clean it 
zip_safe flag not set; analyzing archive contents... 
Deploying project-1358597244 to http://domain.com/api/scrapy/dirbot/addversio   n.json 
Deploy failed (404): 
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
<html><head> 
<title>404 Not Found</title> 
</head><body> 
<h1>Not Found</h1> 
<p>The requested URL /api/scrapy/dirbot/addversion.json was not found on this se   rver.</p> 
<hr> 
<address>Apache/2.2.22 (Ubuntu) Server at domain.com Port 80</address> 
</body></html> 

*我不明白什麼是python雞蛋。你能舉個例子嗎?我不知道我有沒有。也許是那個文件/var/www/api/scrapy/dirbot/setup.py?

from setuptools import setup, find_packages 

setup(
    name   = 'project', 
    version  = '1.0', 
    packages  = find_packages(), 
    entry_points = {'scrapy': ['settings = dirbot.settings']}, 
) 

*如何部署我的項目。我不知道我做錯了,還是錯過了一步?

感謝

+0

確保'url'確定。嘗試使用默認的'http:// domain:6800' – kev

回答

1

以及從錯誤中似乎要抓取的網站給的404錯誤要麼你把錯誤的網站還是有一些配置錯誤。

約蟒蛇蛋,有關於一個很好的答案,檢查它在What is a Python egg?

約setup.py:因爲我知道這是用於使用命令python setup.py install

從源代碼安裝Python應用程序編輯:看起來我對命令pip感到困惑,對此感到抱歉

+0

pip命令應該用作pip安裝設置 –

+0

修復這個問題,當我嘗試運行'pip install setup'時,pip會下載一個名爲setup not的python應用程序從源代碼安裝 –