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 .
Por ejemplo, la creación de proyectos de Django, la creación de proyectos de Scrapy , django-admin.py y scrapy son scripts en la carpeta bin.
Puede obtener incluso más ejemplos al verificar las herramientas basadas casi en Python.