3

I have a project in Python where I have a server. The server can have a variety of different services, but I don't know what those are until I start it up. I want it to do a search of available plugin files to know what services are available.

Right now, I'm doing that by just having the metadata files as Python source code and loading it using imp.load_source.

My question is where do I store these metadata files? The metadata files need to contain information pointing to files on the filesystem. For example, one of the programs the service needs to launch is a java program. I have the jar file and I compile it myself, but when I'm working on the project the compiled file goes into the build directory. When I'm going to want to install this on a machine, I'll need to store the files somewhere else. I want to keep the source directory and build directory separate (as it makes the clean command easier).

What standard practice is done to handle the need for metadata files and where they are located?

EDIT: I'm trying to target both Windows and Linux systems (and hopefully Mac systems too, but that's less important). For Linux, most important are the major distributions (such as Fedora and Debian) and hopefully others (although this is dependent on others trying to use it on whatever distribution, as I cannot test all of them and will only test on Fedora and Debian myself).

1
  • Please pick an operating system. Further, for Linux, it helps to pick a specific distribution.
    – S.Lott
    Commented Apr 27, 2011 at 17:58

1 Answer 1

1

This sounds like you're reinventing software deployment. There are some great free tools for this! Using one will save you tons of headache and hassle, now and in the future, at the expense of learning one new simple tool.

I've had good experience with Buildout, which is quite widely used in Python projects and highly recommended.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.