Ambos lados, revisión anteriorRevisión previa | |
f1:python [2024/11/22 19:39] – lmachuca | f1:python [2025/03/20 14:08] (actual) – lmachuca |
---|
| |
* Python Documentation: https://docs.python.org/ | * Python Documentation: https://docs.python.org/ |
* Python 2.7/Legacy: https://docs.python.org/2/ | |
* pip Package Manager: https://pypi.org/project/pip/ | * pip Package Manager: https://pypi.org/project/pip/ |
* wxWidgets (interface gráfica) con Python: [[wp>es:wxPython]] , https://pythonspot.com/tag/wxwidgets/ | * wxWidgets (interface gráfica) con Python: [[wp>es:wxPython]] , https://pythonspot.com/tag/wxwidgets/ |
La instalación para Linux cubre el caso de distribuciones Debian, Ubuntu y similar. | La instalación para Linux cubre el caso de distribuciones Debian, Ubuntu y similar. |
| |
La mayoría de las distribuciones ya viene con Python. La versión de Python depende de la distribución, suele ser desde Python 3.6 (Ubuntu 2018) a Python 3.10 (Debian Unstable 2022). :!: Es importante **nunca** seguir tutoriales de internet que instalan una versión diferente de Python y **cambian la versión del sistema**, ya que componentes como la administración de paquetes dependen de Python. | La mayoría de las distribuciones ya viene con Python 3.x. La versión de Python depende de la distribución, suele ser desde Python 3.6 (Ubuntu 2018) en adelante. :!: Es importante **nunca** seguir tutoriales de internet que instalan una versión diferente de Python y **cambian la versión del sistema**, ya que en distribuciones Debian y RedHat, componentes como la administración de paquetes dependen de Python. |
| |
El ejecutable de Python suele ser ''/usr/bin/python'' o ''/usr/bin/python3''. | El ejecutable de Python suele ser ''/usr/bin/python'' o ''/usr/bin/python3''. |
Para instalar otra versión de Python, se recomienda [[https://github.com/pyenv/pyenv#installation|instalar pyenv por cualquiera de sus métodos oficiales]]. Este proceso debe realizarse con la cuenta normal de usuario, y creará un árbol de directorios para almacenar distintas versiones de Python (cada una con su propia paquetería) en una ruta indicada por el usuario. | Para instalar otra versión de Python, se recomienda [[https://github.com/pyenv/pyenv#installation|instalar pyenv por cualquiera de sus métodos oficiales]]. Este proceso debe realizarse con la cuenta normal de usuario, y creará un árbol de directorios para almacenar distintas versiones de Python (cada una con su propia paquetería) en una ruta indicada por el usuario. |
| |
Algunas distribuciones viejas de Linux pueden venir con un intérprete ''/usr/bin/python'' de **Python 2 por defecto**, aún cuando soportan Python 3. Para configurar Python 3 como el intérprete ''/usr/bin/python'' por defecto, se puede instalar un paquete que realiza esta notificación dependiendo de la distribución: | Algunas distribuciones viejas de Linux pueden venir con un intérprete ''/usr/bin/python'' o ''/usr/bin/python2'' de **Python 2 por defecto**, aún cuando soportan Python 3. Para configurar Python 3 como el intérprete ''/usr/bin/python'' por defecto, se puede instalar un paquete que realiza esta notificación dependiendo de la distribución: |
| |
apt install python-is-python3 | apt install python-is-python3 |
| |
* Ya que se usa para levantar scripts, se recomienda instalar Python en una ruta sin espacios (por ejemplo, //Python for Windows// usualmente instala en ''c:/WinPy/3.8'' o similar). | * Ya que se usa para levantar scripts, se recomienda instalar Python en una ruta sin espacios (por ejemplo, //Python for Windows// usualmente instala en ''c:/WinPy/3.8'' o similar). |
* Windows XP: Ojo, La última versión de Python for Windows soportada en Windows XP es [[https://www.python.org/downloads/release/python-279/|2.7.9]], y la última versión de Cygwin soportada en Windows XP es 3.3 sin SSL. | * Para los equipos Windows con WSL2, es mejor usar el subsistema de Python integrado. |
| * La última versión de Python for Windows soportada en Windows XP es [[https://www.python.org/downloads/release/python-279/|2.7.9]], y la última versión de Cygwin soportada en Windows XP es 3.3 sin SSL. |
| |
El directorio con el intérprete debe ser agregado al ''%PATH%'' si el instalador no lo hace por defecto. | El directorio con el intérprete puede ser agregado al ''%PATH%'' si el instalador no lo hace por defecto. |
| |
===== Instalación Android ===== | ===== Instalación Android ===== |
| |
Es posible instalar una versión miniaturizada de Python por medio de [[https://www.atareao.es/software/utilidades/terminal-para-android/|Termux (en F-Droid)]]. Ojo que empezando en Android 10, esto requiere la versión de Termux en F-Droid, ya que desde Android 10 los paquetes en Google Play Store no pueden instalar complementos. | Es posible instalar una versión miniaturizada de Python por medio de [[https://www.atareao.es/software/utilidades/terminal-para-android/|Termux (en F-Droid)]]. Ojo que empezando en Android 10, esto requiere la versión de Termux en F-Droid, ya que desde Android 10 los paquetes en Google Play Store no pueden instalar complementos o tener sus propios gestores de paquetes. |
| |
=====Gestor de Dependencias===== | =====Gestor de Proyectos ===== |
| |
**''pip''** es el gestor de paquetes integrado para Python, permite instalar paquetes y módulos en modo usuario además de (en Linux) integrar las instalaciones disponibles con el gestor de paquetes. | En Python **''venv''** es el gestor de entornos y **''pip''** es el gestor de paquetes, permiten instalar paquetes y módulos en modo usuario además de (en Linux) integrar las instalaciones disponibles con el gestor de paquetes. |
| |
Para instalar pip se utiliza el comando ''apt-get install pip python-virtualenv''. El comando se llama ''pip'' para Python 3 y ''pip2'' para Python 2. | Para instalar estos sistemas en Debian se utiliza (como superusuario) el comando ''apt install python-pip python-virtualenv''. El módulo de venv se invoca con ''python -m venv''. El comando de pip se llama ''pip'' para Python 3 y ''pip2'' para Python 2. |
| |
El gestor de paquetes pip funciona creando una base de datos local con paquetes y permisos para cada usuario; por tanto, para instalar paquetes para un proyecto siempre debe hacerse de manera local como el usuario del proyecto y con la opción ''--user''; **nunca** como ''root''. | El gestor de paquetes pip funciona creando una base de datos local con paquetes y permisos para cada usuario; por tanto, para instalar paquetes para un proyecto siempre debe hacerse de manera local como el usuario del proyecto, o mejor ún directamente dentro del entorno creado y activado por ''venv''. |
| |
Para instalar un módulo se puede invocar pip con la opción ''%%--user%%''. | Si estoy en el árbol de directorios de un proyecto, puedo crear un entorno venv para trabajar ese proyecto con un sencillo comando: |
| |
<code bash> | <code bash> |
usuario $ pip install --user sqlite mysql pgsql | [usuario@ ~/proyecto ] $ python -m venv test |
usuario $ pip install --user configparser | [usuario@ ~/proyecto ] $ ls -F |
| |
| proyecto.py |
| test/ |
</code> | </code> |
| |
| Para trabajar con entornos ''venv'' ejemplos de tutoriales: |
| |
| * https://codificandobits.com/tutorial/como-crear-entornos-virtuales-en-python-con-venv/ |
| * https://realpython.com/python-virtual-environments-a-primer/ |
| |
| |
=====Tópicos ===== | =====Tópicos ===== |
| |
Los tres proyectos de software más relevantes en Helpcom que dependen de Python son [[f1:respaldarv2]] para respaldar bases de datos, los respaldos automáticos de Facturación Electrónica, y los [[trébol:|respaldos nube de Trébol en Amazon]]. | Algunos proyectos y middlewares de Helpcom están hechos en Python. Entre los más notables se puede mencionar: [[f1:respaldarv2]] para respaldar bases de datos, "pyhyzy" el middleware de captura de horas de ZKtime, y "twbalanza" el middleware para conectar y cargar PLU en balanzas Digicom con protocolo TWS. |
| |
| Las siguientes páginas en esta wiki están marcadas con "Python": |
| |
{{topic>helpcom +python}} | {{topic>helpcom +python}} |
=====Notas===== | =====Notas===== |
| |
==== Pip desde Python ==== | Empezando en Python 3.4, si un ejecutable para un componente de Python con interface de ejecutable no está disponible, se puede invocar el módulo en Python directamente. Por ejemplo: |
Si un ejecutable para ''pip'' no está disponible pero el módulo está instalado, es posible reemplazar el comando ''pip'' con el comando ''python'': | |
| |
# En vez de | <code> |
pip install --user modulo | # Con ejecutable |
# Usar | pip install --user argparse |
python -m pip install --user modulo -- | # Con Python |
| python -m pip install --uer argparse |
| |
| # Con ejecutable |
==== Dependencias Python Directo desde Python ==== | venv miprueba activate |
| # Con Python |
Se puede invocar ''pip'' directamente desde la consola de Python (Linux o Windows) como se puede ver en [[https://stackoverflow.com/questions/12332975/installing-python-module-within-code|(1)]]: | python -m venv miprueba activate |
| |
<code python> | |
>>> import pip | |
>>> pip.main(['install', 'configparser']) | |
</code> | </code> |
| |
Ejemplo: | |
| |
<file> | |
Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win | |
32 | |
Type "help", "copyright", "credits" or "license" for more information. | |
>>> import pip | |
>>> pip.main(['install', 'configparser']) | |
Downloading/unpacking configparser | |
Downloading configparser-3.5.0.tar.gz | |
Running setup.py | |
| |
Installing collected packages: configparser | |
Running setup.py install for configparser | |
| |
Installing C:\Python27\Lib\site-packages\configparser-3.5.0-py2.7-nspkg.pth | |
Successfully installed configparser | |
Cleaning up... | |
0 | |
>>> | |
| |
</file> | |
| |
Para Python en Cygwin es posible utilizar los ejemplos en [[https://stackoverflow.com/questions/24645468/install-python-modules-in-cygwin]]. | Para Python en Cygwin es posible utilizar los ejemplos en [[https://stackoverflow.com/questions/24645468/install-python-modules-in-cygwin]]. |