2013-04-21 10 views
14

मैं एक पुन: प्रयोज्य Django अनुप्रयोग लिख रहा हूँ में शामिल हैं: https://django.readthedocs.org/en/1.5.x/intro/reusable-apps.htmlsetup.py: उम्मीद parenthesized सूची जरूरत पड़ने पर पैकेज के नाम के यहाँ वर्णित एक पानी का छींटा

जब मैं setup.py में एक आवश्यकता है कि पैकेज में एक पानी का छींटा शामिल निर्दिष्ट नाम, setup.py नहीं चलाएगा। उदाहरण के लिए, यदि मेरे setup.py में यह पंक्ति है:

requires=[ 'djangotinymce', 'MtFileUtil', 'Django', 'PyYAML', ], 

फिर यह ठीक से काम करता है।

python ./setup.py sdist 
running sdist 
... 
Creating tar archive 

अगर मैं इस तरह देखने के लिए लाइन बदलने के लिए:

requires=[ 'django-tinymce', 'MtFileUtil', 'Django', 'PyYAML', ], 

हम एक अजीब त्रुटि

Traceback (most recent call last): 
    File "./setup.py", line 32, in <module> 
    'Topic :: Internet :: WWW/HTTP :: Dynamic Content', 
    File "/usr/lib/python2.7/distutils/core.py", line 112, in setup 
    _setup_distribution = dist = klass(attrs) 
    File "/home/travis/venv/deleteme/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/dist.py", line 225, in __init__ 
    _Distribution.__init__(self,attrs) 
    File "/usr/lib/python2.7/distutils/dist.py", line 259, in __init__ 
    getattr(self.metadata, "set_" + key)(val) 
    File "/usr/lib/python2.7/distutils/dist.py", line 1220, in set_requires 
    distutils.versionpredicate.VersionPredicate(v) 
    File "/usr/lib/python2.7/distutils/versionpredicate.py", line 113, in __init__ 
    raise ValueError("expected parenthesized list: %r" % paren) 
ValueError: expected parenthesized list: '-tinymce' 

मैं क्या इस बात का बनाने के लिए अनिश्चित हूँ मिलता है। मैं django-tinymce की आवश्यकता है लेकिन मैं नहीं देख सकता कि यह कैसे करें।

उत्तर

16

require तर्क distutils से है और पाइथन पैकेज नामों की अपेक्षा करता है (कुछ documentation यहां)। Declaring Dependencies पर setuptools दस्तावेज में

install_requires=['djangotinymce', 'MtFileUtil', 'Django', 'PyYAML'], 

और जानकारी: जब से तुम setuptools उपयोग कर रहे हैं, तो आप install_requires तर्क के बजाय का उपयोग करना चाहिए, जो PyPI पैकेज के नाम का समर्थन करता है।

+0

उपरोक्त टिप्पणी में स्पष्टीकरण जोड़ने के लिए, आपको-को हटा देना होगा। इन्हें पाइथन करने के लिए अंकगणितीय ऑपरेटरों हैं। Ie 'django-tinymce' -> 'djangotinymce'। – Rebs

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