I have a typical project structure that looks as follows:
EngineEmulator
ship
engine
emulator
mapping
__init__.py
tests
emulator
mapping
__init__.py
setup.py
MANIFEST.in
setup.cfg
README.rst
My setup.py looks as follows:
from setuptools import setup, find_packages
setup(
name='Engine',
version=1.0.0,
description='Engine Project',
packages=find_packages(
exclude=["*.tests", "*.tests.*", "tests.*", "tests"]),
install_requires =['pycrypto',
'kombu >=1.1.3'],
author='Demo',
author_email='[email protected]'
license='MIT',
classifiers=[
'Topic :: Demo Engine',
'Development Status:: 3 - Iteration',
'Programming Language :: Python -2.6'
]
)
My setup.cfg looks as follows:
[egg_info]
tag_build = .dev
tag_svn_revision = 1
[rotate]
#keep last 15 eggs, clean up order
match = .egg
keep = 15
And My MANIFEST.in looks as follows:
include README.rst
include setup.py
recursive-include engine *
When I run python setup.py bdist
the tar file it generates does not include the setup.py file.
When I run pip install it complains the setup.py is missing.
However when I did python setup.py sdist
, it generates the tar file that has the setup.py.
Any idea why?
pip install <generated_tar>
I end up with an error saying the setup.py file is missing.bdist
doesn't include asetup.py
because it's not needed:setup.py
is not installed as part of a Distutils bdist distribution, basically it describes how to make abdist
from ansdist
.setup.py missing error
. Googling led me to believe that pip cannot install if setup.py is missing.bdist
for general installation withpip
especially for a pure Python one. A dumbbdist
only applies to a particular kind of Python installation, the kind you used to generate it. Use ansdist
. Or use a smart bdist format like wheels.