I’m working on a package that includes some files that are meant to be copied and edited by people using the package.
My project is named “pitz” and it is a bugtracker. Instead of using a config file to set the options for a project, I want to use python files.
When somebody installs pitz, I want to save some .py files somewhere so that when they run my pitz-setup script, I can go find those .py files and copy them into their working directory.
I have two questions:
- Do I need to write my setup.py file to specify that the .py files in particular directory need to be treated like data, not code? For example, I don’t want the installer to hide those files inside an egg.
- How can I find those .py files later and copy them?
Here’s my setup.py so far:
from setuptools import setup, find_packages
version = '0.1'
description="Python to-do tracker inspired by ditz (ditz.rubyforge.org)",
ditz (http://ditz.rubyforge.org) is the best distributed ticketing
system that I know of. There's a few things I want to change, so I
packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
# -*- Extra requirements: -*-
# I know about the much fancier entry points, but I prefer this
# solution. Why does everything have to be zany?
scripts = ['scripts/pitz-shell'],
test_suite = 'nose.collector',
When I run python setup.py install, I do get those .sample files copied, but they get copied into a folder way inside of my pitz install:
$ cd ~/virtualenvs/scratch/lib/
$ find -type f -name '*.sample'
I don’t know how I can write a script to copy those tracpitz.py.sample files out. Maybe I can ask pitz what its version is, and then build a tring and use os.path.join, but that doesn’t look like any fun at all.
So, what should I do instead?