Desarrollo la aplicación Python que decidí convertir en paquete para ser instalado por easy_install
o pip
más tarde. He usado la búsqueda para encontrar varias fuentes útiles sobre la estructura de directorios para paquetes de Python. Vea this answer o this post.Scripts en el paquete python
he creado siguiente estructura (he omitido varios archivos de la lista para que sea más clara strcture)
Project/ |-- bin/ |-- my_package/ | |-- test/ | | |-- __init__.py | | |-- test_server.py | |-- __init__.py | |-- server.py | |-- util.py |-- doc/ | |-- index.rst |-- README.txt |-- LICENSE.txt |-- setup.py
Después de eso creé script ejecutable server-run
#!/usr/bin/env python from my_package import server server.main()
cual coloqué en bin
directorio. Si instalo mi paquete con python setup.py install
o a través de pip/easy_install
todo funciona bien, puedo ejecutar server-run
y mi servidor comienza a manejar las solicitudes entrantes.
Pero mi pregunta es cómo probar que server-run
obras en el entorno de desarrollo (sin necesidad de instalación previa de my_package
)? También quiero utilizar esta secuencia de comandos para ejecutar el último código de servidor para fines de desarrollo.
Desarrollo sucede en Project
directorio por lo que estoy recibiendo ImportError
si corro ./bin/server-run
[email protected]:~/dev/Project/$ ./bin/server-run Traceback (most recent call last): File "./bin/server-run", line 2, in import my_package ImportError: No module named my_package
¿Es posible modificar bin/server-run
secuencia de comandos para que funcione si lo funciono de otra carpeta en algún lugar del sistema de archivos (no necesariamente de Project
dir)? También tenga en cuenta que quiero utilizar (si es posible lograrlo) el mismo script para ejecutar el servidor en el entorno de producción.
Pero si utilizo este código 'servidor run' no va a funcionar después de la instalación del paquete. – Alik
Actualizado con la forma de probar la versión normal primero. – agf
Huh. Me olvidé de ImportException :) ¡Gracias! – Alik