Tengo un proyecto del cual me gustaría generar dos paquetes de Python separados. Quiero instalar estos paquetes usando pip.¿Múltiples proyectos usando múltiples scripts setup.py?
En respuestas a esta pregunta anterior, la recomendación general era escribir dos setup.py
guiones: Multiple projects from one setup.py?
Así que probé una estructura como esta:
/myproject
setup_foo.py
setup_bar.py
/mypackage1
/mypackage2
...
En setup_foo.py
fijo el script_name
parámetro:
from distutils.core import setup
setup(name = 'foo',
version = '2.0.0',
...,
script_name = 'setup_foo.py')
(También probé lo siguiente sin el parámetro - según th th e la documentación que por defecto a sys.argv [0])
creo foo-2.0.0.tar.gz
usando
python setup_foo.py sdist
Pero cuando pip install foo-2.0.0.tar.gz
, me sale un error como este:
Unpacking .../foo-2.0.0.tar.gz
Running setup.py egg_info for package from file:///...foo-2.0.0.tar.gz
Traceback (most recent call last):
File "<string>", line 14, in <module>
IOError: [Errno 2] No such file or directory: '/var/folders/wj/jv7n2pmn5d1g1jjx6khc8bx80000gn/T/pip-v3dujq-build/setup.py'
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 14, in <module>
IOError: [Errno 2] No such file or directory:
'/var/folders/wj/jv7n2pmn5d1g1jjx6khc8bx80000gn/T/pip-v3dujq-build/setup.py'
Me estoy perdiendo algo de forma de instruir pip
para usar setup_foo.py
? ¿O debería colocar dos scripts, ambos llamados 'setup.py', en directorios separados?
Gracias por su respuesta! Estás casi en lo cierto sobre mis razones para elegir la estructura que ilustré; Yo tenía dos de ellos. En primer lugar, estoy usando PyDev/Eclipse y, si es posible, quería evitar las dependencias entre proyectos. En segundo lugar, mis dos distribuciones comparten casi todos los paquetes del proyecto, principalmente difieren en las herramientas de línea de comandos incluidas, por lo que dividirlos en dos o tres proyectos independientes parecía un poco excesivo. Si dos distribuciones en un proyecto frotan las herramientas de configuración de la manera incorrecta, puedo elegir tener una sola distribución y aceptar implementar todas las secuencias de comandos en todos los servidores. –
Consulte http://code.google.com/p/pyroscope/source/browse/trunk/update-to-head.sh para obtener inspiración. Si instala en un virtualenv (siempre es una buena idea, incluso en una máquina de producción), puede vincular simbólicamente los stubs de herramientas y, por lo tanto, publicar un subconjunto seleccionado (consulte "ln -nfs $ (grep -l 'entry_point. * Pyrocore == '$ PWD/bin/*) $ {BIN_DIR: - ~/bin}/"comando). – pyroscope
¡listo! Sí, esa es una forma más simple de ocultar/publicar subconjuntos de sripts. –