2015-05-27 12 views
7

नकल नहीं पैकेज निर्देशिका संरचना इसsetuptools अजगर सभी बच्चे मॉड्यूल

repodir/ 
-------- setup.py 
-------- MANIFEST.in 

-------- bin/ 
----------- awsm.sh 

-------- sound/ 
------------ init.py 

------------ echo/ 
----------------- init.py 
----------------- module1.py 
----------------- module2.py 

------------ effects/ 
------------------- init.py 
------------------- module3.py 
------------------- module4.py 

setup.py

from setuptools import setup 
setup(
     name = 'sound', 
     version = '0.1', 
     author = 'awesomeo', 
     author_email = '[email protected]', 
     description = 'awesomeo', 
     license = 'Proprietary', 
     packages = ['sound'], 
     scripts = ['bin/awsm.sh'], 
     install_requires = ['Django==1.8.2', 'billiard', 'kombu', 'celery', 'django-celery' ], 
     zip_safe = False, 
    ) 

जब मैं करना है स्थापित setup.py - अजगर स्थापित setup.py , केवल ध्वनि/init .py को /Library/Python/2.7/site-packages/sound/ निर्देशिका में कॉपी किया गया है।

बाकी सबपैकेज इको, घेरे और प्रभावों की प्रतिलिपि नहीं बनाई गई है। Setuptools एक sound.egg-जानकारी जो SOURCES.txt फ़ाइल

SOURCES.txt

MANIFEST.in 
setup.py 
bin/awsm.sh 
sound/__init__.py 
sound.egg-info/PKG-INFO 
sound.egg-info/SOURCES.txt 
sound.egg-info/dependency_links.txt 
sound.egg-info/not-zip-safe 
sound.egg-info/requires.txt 
sound.egg-info/top_level.txt 

सेटअप की तरह लग रहा SOURCES.txt फ़ाइल में सबपैकेज शामिल नहीं है पर प्रतिलिपि करने होते हैं बनाता है स्थापित करें और यही समस्या पैदा कर रही है।

कोई विचार यह क्यों हो सकता है?

उत्तर

3

sound.echo और sound.effectspackages जोड़ें। distutils उप-पैकेजों को पुन: संग्रहित नहीं करेगा।

अनुसार fine documentation:

distutils रिकर्सिवली अपने स्रोत पेड़ एक __init__.py फ़ाइल

नोट के साथ किसी भी निर्देशिका के लिए की तलाश में स्कैन नहीं करेंगे: इसके अलावा अपने पैकेज के लिए __init__.py फ़ाइलों को बनाने के लिए सुनिश्चित हो (आपके प्रश्न में आपने उन्हें init.py नाम दिया)।

+0

वह मेरे लिए काम किया, धन्यवाद! पहले कोई रिकर्सिव स्कैन के बारे में नहीं पता था। – Manas

+0

यदि आप सहायक थे तो आप उत्तर को "स्वीकार" कर सकते हैं .-) – knitti

9

आप पहले से ही setuptools का उपयोग कर रहे हैं ताकि आप find_packages आयात सभी उप संकुल प्राप्त करने के लिए कर सकते हैं:

from setuptools import setup, find_packages 
setup(
    ... 
    packages=find_packages(), 
    ... 
) 
संबंधित मुद्दे