modules python package directory bin

python - pip modules



¿Qué scripts irían a una carpeta bin de un paquete de Python? (2)

Estoy aprendiendo sobre los Paquetes de Python de Learn Python the Hard Way y uno de los ejercicios que dice:

Ponga un script en el directorio bin que puede ejecutar

A mi me parece algo vago. No estoy exactamente seguro de qué tipo de scripts entrarían en la carpeta bin. La Guía del autoestopista para el embalaje dice

ponga en la papelera cualquier script que haya escrito que use su paquete y que considere que sería útil para sus usuarios. Si no tiene ninguno, elimine el directorio bin.

Pero todavía me pregunto qué tipo de guión iría allí. Entonces, sé que puede sonar como una pregunta tonta, pero ¿puede alguien darme un ejemplo de cuándo y por qué uno pondría "un script" en la carpeta bin de su paquete?


Acabo de obtener Ex46 en LPTHW. Al igual que usted, me confundieron los guiones. En caso de que la otra respuesta fuera demasiado avanzada para usted, acabé de poner un simple script "hola mundo":

#!/usr/bin/env python from test3 import printstring printstring.printstring("test script working") print "test over"

Nombré ese archivo testscript3.py (* Nota, luego supe que sería más conveniente dejar de lado la extensión de nombre de archivo .py si se tratara de un script real que quisiera parecer un comando del sistema)

Mi archivo test3.py era así:

def printstring(s=''you did not provide string''): print s

Aquí hay algunas cosas para principiantes que aprendí al intentar que este proceso funcionara:

  • Los #! el símbolo a veces se pronuncia shebang y la explicación simple es que el comando en esa línea le dice al shell que use Python para ejecutar el script. Si deja de lado la extensión de nombre de archivo ".py", entonces el usuario del script no tiene que preocuparse de qué intérprete se necesita para ejecutar el script. Ver el artículo de wikipedia shebang .

  • Ejecuté el siguiente comando para empaquetar la distribución:

    python setup.py sdist

  • Después de hacer eso, pude instalar el paquete y el script ejecutando

    sudo pip install test3-0.1.tar.gz

  • Una cosa de la que me preocupaba eran los permisos en el archivo de script. Sin embargo, noté que distutils se encargó de esto al empaquetar (cambio de modo a 755 o lo que sea).

Puedes encontrar mi proyecto completo para este ejemplo en github .