The package dir structure is this
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,
)
When I do - python setup.py install, only sound/init.py is copied to /Library/Python/2.7/site-packages/sound/ directory.
The rest of the subpackages echo, surround and effects are not copied at all. Setuptools creates an sound.egg-info which contain SOURCES.txt file
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
Looks like setup does not include the subpackages in the SOURCES.txt file to be copied on install and that is what is creating the problem.
Any idea why this might happen?
You're already using setuptools so you can import find_packages
to get all sub packages:
from setuptools import setup, find_packages
setup(
...
packages=find_packages(),
...
)
Add sound.echo
and sound.effects
to packages
. distutils
won't recursively collect sub-packages.
As per the fine documentation:
Distutils will not recursively scan your source tree looking for any directory with an
__init__.py
file
Note: Also be sure to create __init__.py
files for your packages (In your question you named them init.py
).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With