| 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]]. |