2015-01-31 5 views
5

हम एक काफी सामान्य Scrapy परियोजना, ऐसा ही कुछ नहीं पा सकते हैं:Scrapyd एक उप निर्देशिका में कोड

project/ 
     setup.py 
     scrapy.cfg 
     SOME_DIR_WITH_PYTHON_MODULE/ 
            __init__.py 
     project/ 
       settings.py 
       pipelines.py 
       __init__.py 
       spiders/ 
        __init__.py 
        somespider.py 

सब कुछ अच्छा काम करता है अगर हम कमांड लाइन से चलाने scrapy crawl somespider...

लेकिन जब हम इसे तैनात करते हैं और Scrapyd का उपयोग करके चलाते हैं, तो यह कोड SOME_DIR_WITH_PYTHON_MODULE से कोड आयात करने में विफल रहता है। ऐसा लगता है कि यह कुछ अज्ञात कारणों से कोड नहीं देखता है।

हमने इसे pipelines.py फ़ाइल में आयात करने का प्रयास किया। इस तरह की कोशिश की:

from project.SOME_DIR_WITH_PYTHON_MODULE import *

और इस तरह:

from SOME_DIR_WITH_PYTHON_MODULE import *

... और कुछ भी नहीं काम किया। यद्यपि यह काम करता है अगर स्काइप क्रॉल का उपयोग कर कमांड लाइन 'प्रत्यक्ष' निष्पादन से भाग गया।

हमें इसे काम करने के लिए क्या करना चाहिए?

धन्यवाद!

उत्तर

1

असल में, मुझे कारण मिला। मैं data_files इस्तेमाल किया जाना चाहिए किया है परम:

setup(
    name='blabla', 
    version='1.0', 
    packages=find_packages(), 
    entry_points={'scrapy': ['settings = blabla.settings']}, 
    zip_safe=False, 
    include_package_data=True, 
    data_files=[(root, [os.path.join(root, f) for f in files]) 
     for root, _, files in itertools.chain(os.walk('monitoring'), 
               os.walk('blabla/data'))], 
    install_requires=[ 
     "Scrapy>=0.22", 
    ], 
    extras_require={ 
     'Somemodule': ["numpy"], 
    } 
) 

कि थोड़ा अजीब है क्योंकि कोड, डेटा है वास्तव में है ... लेकिन यह हमारे लिए काम किया।

ध्यान के लिए धन्यवाद। हल किया।

संबंधित मुद्दे