Chcę utworzyć plik setup.py, który instalowałby moje pliki w niestandardowych katalogach. Mam pewien prefiks, gdzie chciałbym uzyskać następujący wynik:konfiguracja pytona setup.py do instalacji plików w niestandardowych katalogach
/my/prefix/
bin/
script.sh
libexec/
one.py
two.py
...
lib/pythonX.Y/site-packages/
package/...
Mój początkowy projekt jest następujący:
/
script.sh
one.py
two.py
...
setup.py
package/...
__init__.py
...
Jaki byłby najlepszy sposób to osiągnąć? Chciałbym, aby móc zainstalować go później z czymś takim:
python setup.py install --prefix=/my/prefix
mogę dostać „opakowanie” ładnie zainstalowany w odpowiednim katalogu, co lib/pythonX.Y/site-packages pod prefix jest domyślnym Lokalizacja. Ale czy istnieje prosty sposób, aby uzyskać script.sh na "bin" i inne pliki Pythona w "libexec"? Jedyny sposób, w jaki to widzę, to ręczne kopiowanie tych plików w moim skrypcie setup.py. Być może istnieje bardziej przejrzysty i bardziej standardowy sposób, aby to zrobić?
(edit)
Rozwiązanie
skończyło się setup.py tak:
setup(name='mylib',
scripts=['script.sh'],
data_files=[('libexec', ['one.py', 'two.py'])]
)
Oczywiście, można iteracyjne nad wszystkie pliki Pythona do libexec, ale Mam tylko 2-3 pliki Pythona, których potrzebuję.
(Edit2)
Dodatkowo mam setup.cfg z następujących czynności:
[install]
prefix=/my/prefix
i zamiast python setup.py install --prefix=/my/prefix
mogę po prostu zrobić:
python setup.py install
Oto kilka przydatnych dokumentów na ten temat: https://docs.python.org/2/install/index.html#alternate-installation-unix-the-prefix-scheme i tutaj https: //docs.python. org/3/distutils/introduction.html – Pierz