Я хочу создать файл 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