Quiero crear un archivo setup.py que instale mis archivos en directorios personalizados. Tengo un determinado prefijo, donde me gustaría obtener el siguiente resultado:configuración de python setup.py para instalar archivos en directorios personalizados
/my/prefix/
bin/
script.sh
libexec/
one.py
two.py
...
lib/pythonX.Y/site-packages/
package/...
Mi proyecto inicial es el siguiente:
/
script.sh
one.py
two.py
...
setup.py
package/...
__init__.py
...
¿Cuál sería la mejor manera de lograr esto? Me gustaría ser capaz de instalarlo posteriormente con algo como:
python setup.py install --prefix=/my/prefix
puedo conseguir "paquete" muy bien instalado en el directorio correcto como lib/pythonX.Y/site-packages bajo --prefix es el predeterminado ubicación. ¿Pero hay una manera clara de convertir script.sh en "bin" y otros archivos de python en "libexec"? La única forma de lograr eso sería copiar manualmente esos archivos en mi script setup.py. ¿Puede haber una manera más limpia y más estándar de hacer eso?
(editar)
Solución
que terminó con setup.py así:
setup(name='mylib',
scripts=['script.sh'],
data_files=[('libexec', ['one.py', 'two.py'])]
)
Por supuesto, se puede iterar sobre todos los archivos de Python para libexec, pero solo tengo 2-3 archivos Python que necesito allí.
(Edit2)
Además, puedo haber setup.cfg con lo siguiente:
[install]
prefix=/my/prefix
y en lugar de python setup.py install --prefix=/my/prefix
yo sólo puedo hacer:
python setup.py install
Hay algunos documentos útiles aquí: https://docs.python.org/2/install/index.html#alternate-installation-unix-the-prefix-scheme y aquí https: //docs.python. org/3/distutils/introduction.html – Pierz