Hi, I have a Python project which follows a client-server architecture. It is natural to develop it as two different projects and in two different source distributions, myproject-server.tar.gz and myproject-client.tar.gz. Neither package depends on the other, but because they are part of a larger, overarching project, I want install each of them so that they appear as subpackages (myproject.server and myproject.client) under a common superpackage (myproject). I am looking for the cleanest and most correct way to do this using distutils and setup.py, so that I can end up with a structure like this: site-packages/myproject site-packages/myproject/__init__.py site-packages/myproject/server/__init__.py site-packages/myproject/server/file1.py site-packages/myproject/server/file2.py site-packages/myproject/client/__init__.py site-packages/myproject/client/file3.py site-packages/myproject/client/file4.py and so that any of the following commands (and their standard variations) work: import myproject import myproject.server import myproject.client Is there a way to write distutils/setup.py to do this? I have tried something like packages = ["myproject", "myproject.client"] in the client's setup.py and packages = ["myproject", "myproject.server"] in the server's setup.py. This kind of works, but it feels wrong because the second package which gets installed will overwrite files from the first -- for example, there is no clean way to install myproject/__init__.py. I can't imagine that I'm the first person to want to address this use case. What would be the best way of doing this? Finally, does anybody have any examples of other projects which do a similar thing? Thanks. -- http://www.fastmail.fm - Email service worth paying for. Try it for free
participants (4)
-
Jonathan Ballet
-
Otto Maddox
-
Rob Healey
-
Éric Araujo