At 11:04 PM 3/24/2010 -0300, Hugo Doria wrote:
Hi guys,

I am new to distutils and trying to create a setup.py for a project,
but i am having a problem.

My project has this directory layout:

/
/AUTHORS
/README
/myproject (binary)
/MyProject
/MyProject/modules/
/MyProject/modules/first.py
/MyProject/modules/__init__.py
/MyProject/output/
/MyProject/output/second.py
/MyProject/output/__init__.py
/doc/manpage.1

Here's the setup.py that i did:

from distutils.core import setup

DATAFILES = [('/usr/share/man/man1', ['doc/manpage.1']),

('/usr/share/doc/myproject',['AUTHORS','COPYING','README','TODO'])]

setup(name='MyProject',
      version='0.1',
      license='GPL2',
      description='Trying distutils,
      author=['Hugo Doria'],
package_dir={'modules':MyProject/modules', 'output':'MyProject/output'},
      packages=['modules', 'output'],
      scripts=['myproject'],
      data_files=DATAFILES)

When i run setup.py install it does works. But i get this on my system:

/usr//lib/python2.6/site-packages/modules
/usr//lib/python2.6/site-packages/output
/usr//lib/python2.6/site-packages/MyProject

It's a bit strange, is not?

It's exactly what you asked for. Your setup.py says you have two top-level packages called 'modules' and 'output', so that's what you got.


Shouldn't it be something like:

/usr//lib/python2.6/site-packages/MyProject
/usr//lib/python2.6/site-packages/MyProject/output/
/usr//lib/python2.6/site-packages/MyProject/modules/

What am i doing wrong?

You're using a package_dir with more than one entry in it, which is a sign that your project's layout is broken. If you wanted a layout like the one you describe here, you need to:

1. Omit the package_dir option altogether
2. set packages = ['MyProject', 'MyProject.output', 'MyProject.modules']
3. Add an __init__.py in the MyProject directory, to make it the parent package


_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to