2009-05-17 12 views
30

¿Cómo puedo crear el archivo setup.py para mi propio script? Tengo que hacer mi script global. (agréguelo a/usr/bin) para poder ejecutarlo desde la consola solo escriba: argumentos de scriptName. SO: Linux. EDITAR: Ahora mi script es instalable, pero ¿cómo puedo hacerlo global? Para poder ejecutarlo desde la consola, simplemente escriba el nombre.Python: instale el script en el sistema

Respuesta

35

EDITAR: Esta respuesta solo trata con la instalación de scripts ejecutables en /usr/bin. Supongo que tiene conocimientos básicos sobre cómo funcionan los archivos setup.py.

Crear la secuencia de comandos y lo coloca en su proyecto como este:

yourprojectdir/ 
    setup.py 
    scripts/ 
     myscript.sh 

En el archivo de setup.py hacer esto:

from setuptools import setup 
# you may need setuptools instead of distutils 

setup(
    # basic stuff here 
    scripts = [ 
     'scripts/myscript.sh' 
    ] 
) 

continuación, escriba

python setup.py install 

Básicamente eso es todo. Existe la posibilidad de que su script no llegue exactamente al /usr/bin, sino en algún otro directorio. Si este es el caso, escriba

python setup.py install --help 

y la búsqueda de --install-scripts parámetros y amigos.

+0

Ok, hice que escribiste. Pero después de ejecutar: instalación de setup.py, obtuve:
error: el archivo '/home/ockonal/workspace/scripts/getkey.py' no existe – Ockonal

+0

Ok, ya he creado mi script instalable, pero ¿cómo puedo hacer es global? No puedo ejecutarlo desde la consola simplemente nombrar el tipeo. – Ockonal

+0

¿Dónde estaba exactamente el script instalado? Si está en/usr/bin, entonces setup.py funciona bien. Compruebe los permisos de su secuencia de comandos: debería tener permisos de + x para todos. El script en su proyecto debe tener estos permisos, de modo que cuando se copie en/usr/bin todo estará bien. – Jasiu

1

Sé que esta pregunta es bastante antigua, pero por si acaso, publico cómo resolví el problema por mí mismo, que quería configurar un paquete para PyPI que, al instalarlo con pip, lo instalaría como un paquete de sistema, no solo para Python.

setup(
    # rest of setup 
    console_scripts={ 
     'console_scripts': [ 
      '<app> = <package>.<app>:main' 
     ] 
    }, 
) 

Details

Cuestiones relacionadas