настройка python setup.py для установки файлов в пользовательские каталоги
Я хочу создать файл setup.py, который установит мои файлы в пользовательские каталоги. У меня есть определенный префикс, где я хотел бы получить следующий результат:
<code>/my/prefix/ bin/ script.sh libexec/ one.py two.py ... lib/pythonX.Y/site-packages/ package/... </code>
Мой начальный проект следующий:
<code>/ script.sh one.py two.py ... setup.py package/... __init__.py ... </code>
Каков наилучший способ добиться этого? Я хотел бы иметь возможность установить его позже с чем-то вроде:
<code>python setup.py install --prefix=/my/prefix </code>
Я могу получить "пакет" красиво установлен в правильном каталоге, так как lib / pythonX.Y / site-packages в --prefix является местоположением по умолчанию. Но есть ли чистый способ получить script.sh в & quot; bin & quot; и другие файлы Python в "libexec"? Единственный способ добиться этого - вручную скопировать эти файлы в мой скрипт setup.py. Может быть, есть более чистый и более стандартный способ сделать это?
(редактировать)
Solution
Я закончил с setup.py вот так:
<code>setup(name='mylib', scripts=['script.sh'], data_files=[('libexec', ['one.py', 'two.py'])] ) </code>
Конечно, вы можете перебрать все файлы Python для libexec, но у меня есть только 2-3 файла Python, которые мне нужны.
(Edit2)
Кроме того, у меня может быть файл setup.cfg со следующим:
<code>[install] prefix=/my/prefix </code>
и вместоpython setup.py install --prefix=/my/prefix
Я могу просто сделать:
<code>python setup.py install </code>