Конфигурация python setup.py для установки файлов в настраиваемые каталоги

Я хочу создать файл setup.py, который будет устанавливать мои файлы в пользовательские каталоги. У меня есть определенный префикс, где я хотел бы получить следующий результат:

/my/prefix/
  bin/
    script.sh
  libexec/
    one.py
    two.py
   ...
  lib/pythonX.Y/site-packages/
    package/...

Мой первоначальный проект следующий:

/
  script.sh
  one.py
  two.py
 ...
  setup.py
  package/...
    __init__.py
   ...

Как лучше всего этого добиться? Я хотел бы иметь возможность установить его позже с помощью чего-то вроде :

python setup.py install --prefix=/my/prefix

. Я могу красиво установить «пакет» в правильный каталог, поскольку пакеты lib/pythonX.Y/site -с префиксом --являются расположением по умолчанию. Но есть ли чистый способ получить script.sh в "bin" и другие файлы python в "libexec"? Я вижу единственный способ добиться этого — вручную скопировать эти файлы в мой сценарий setup.py. Может -есть более чистый и стандартный способ сделать это?

( изменить)

Решение

Я закончил с setup.py вот так:

setup(name='mylib',
  scripts=['script.sh'],
  data_files=[('libexec', ['one.py', 'two.py'])]
)

Конечно, вы можете перебрать все файлы Python для libexec, но у меня есть только 2 -3 файла Python, которые мне нужны..

(edit2)

Кроме того, у меня может быть setup.cfg со следующим:

[install]
prefix=/my/prefix

и вместо python setup.py install --prefix=/my/prefixя могу просто сделать:

python setup.py install
14
задан Ago 5 May 2012 в 22:13
поделиться