Dependiendo del sistema, python
== python2
o python
== python3
.
Los scripts ejecutables de Python comienzan con:
#!/usr/bin/env python
#!/usr/bin/env python2
#!/usr/bin/env python3...
Para python py3k se proporciona en la documentación que debería / puedo usar con el número de versión , así que hago esto:
#!/usr/bin/env python3
Pero he encontrado un problema con los scripts py2k.
Mientras que en la documentación py2k está escrito para el uso: #! /usr/bin/env python
,
en algunos * nix-es python py3k es el predeterminado, por lo que python == python3. (Por ejemplo , el paquete Python de ArchLinux , aquí los archivos del paquete Python ).
¿Cómo empaquetar (configurar, crear) y / o preparar scripts de Python para su distribución para manejar eso?
Pregunto acerca de cómo hacer paquetes de software que los usuarios puedan ejecutar fácilmente (sin modificar su entorno)
¿Puedo hacer el mismo truco para los scripts python py2k que para los scripts python py3k y configurarlo como #!/usr/bin/env python2
:? ¿Puedo estar seguro de que cada distribución python py2k contiene un python2
archivo, por #!/usr/bin/env python2
lo que funcionará?
En caso afirmativo, ¿por qué no se propone como estándar, por ejemplo, en la documentación de python py2k ?
python2
. Me pregunto por qué no es estándar usarlo cuando hay py2k y py3k y el valor predeterminado python
puede diferir. ¿Qué pasa con su consejo sobre la eliminación ? No es apropiado para este ejemplo, porque le pregunto sobre el embalaje. Me gustaría hacer un paquete que pueda ejecutarse en diferentes configuraciones / sistemas. No hay forma de modificar el entorno. ¿Qué pasa con la verificación? No se aplica a Shebang , que yo sepa.
#!...python2
en tus programas y si estás usando Python 3.x, úsalo #!...python3
. No confíe en el sistema operativo para tener el enlace correcto si sabe que solo funcionará en una versión específica. Trabajo con sistemas que todavía tienen Python 1.5.2 instalado como /usr/bin/python
: escribo código para manejar versiones anteriores de Python o uso python2
.
python2
ejecutable en mi sistema (Debian squeeze). python
es un enlace simbólico a python2.6
, y python3
es un enlace simbólico a python3.1
, pero no existe python2
.
python2
para ejecutarlo (si está instalado), y siempre puedes verificar la versión conpython -V
. si desea quepython
sea 2 o 3, deberm /usr/bin/python
y luego crear un enlace simbólico que apunte desde su versión de Python deseada, por ejemploln -s /usr/bin/python2.5 /usr/bin/python
.