bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


python_venv

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
python_venv [2021/10/18 09:09]
enrique_mieza_sanchez
python_venv [2024/06/25 18:30] (actual)
enric_mieza_sanchez
Línia 1: Línia 1:
 ~~REVEAL~~ ~~REVEAL~~
 ====== Python Virtual Environment ====== ====== Python Virtual Environment ======
 +Les eines de //virtual environment// per a Python es fan servir per a aïllar cada aplicació (i les seves llibreries i dependències) del sistema operatiu i de les altres aplicacions.
  
 +{{ python-virtualenv-project-structure.jpg?direct&400 }}
 +
 +==== Altres articles sobre Python en aquest web ====
 +{{topic>python}}
 +
 +\\
 +
 +===== Python virtualenv =====
   * Desenvolupar o posar en producció **aplicacions en Python requereix diferents llibreries per cada projecte**.   * Desenvolupar o posar en producció **aplicacions en Python requereix diferents llibreries per cada projecte**.
-  * Es solen instal·lar amb el **gestor de paquets ''pip''**.+  * Les llibreries es solen instal·lar amb el **gestor de paquets ''pip''**.
   * Es desaconsella instal·lar llibreries al propi sistema operatiu, pot interferir en el seu funcionament   * Es desaconsella instal·lar llibreries al propi sistema operatiu, pot interferir en el seu funcionament
     * Diverses apps o el SO poden requerir diferents versions de Python o de les llibreries.     * Diverses apps o el SO poden requerir diferents versions de Python o de les llibreries.
 +    * PROHIBIT <del>sudo pip install ...</del>
   * Les eines de //virtual environment// creen **entorns aïllats** del propi SO i així no s'interfereixen.   * Les eines de //virtual environment// creen **entorns aïllats** del propi SO i així no s'interfereixen.
  
Línia 14: Línia 24:
   * **''venv''** : Des de Python 3.3 es pot amb l'eina que porta ja el propi intèrpret.   * **''venv''** : Des de Python 3.3 es pot amb l'eina que porta ja el propi intèrpret.
   * **''virtualenv''** : es pot instal·lar el paquet ''virtualenv'' amb el gestor PIP.   * **''virtualenv''** : es pot instal·lar el paquet ''virtualenv'' amb el gestor PIP.
- 
-{{ python-virtualenv-project-structure.jpg?direct&400 }} 
  
 \\ \\
  
-===== Pre-requeriments per a Virtualenv =====+===== Requeriments per a Virtualenv =====
   * Comprova la versió que tens de Python:<code>$ python --version</code>   * Comprova la versió que tens de Python:<code>$ python --version</code>
   * En els exemples utilitzarem Python 3. Si no està instal·lat, ho pots fer amb:<code>$ sudo apt install python3</code>   * En els exemples utilitzarem Python 3. Si no està instal·lat, ho pots fer amb:<code>$ sudo apt install python3</code>
 +  * Instal·la el mòdul ''venv'':<code>$ sudo pip install python3-venv</code>
  
 \\ \\
  
 ===== Built-in venv ===== ===== Built-in venv =====
-Ve [[https://docs.python.org/es/3/library/venv.html|incorporat a l'intèrpret des de Python v3.3]]. És la forma més senzilla recomanable ja que no cal instal·lar cap dependència.+Ve [[https://docs.python.org/es/3/library/venv.html|incorporat a l'intèrpret des de Python v3.3]]. És la forma recomanada, tot i que sovint cal instal·lar una dependència que no venia amb Python: 
 +  $ sudo apt install python3-venv
  
 Per crear el ''virtual environment'' fem: Per crear el ''virtual environment'' fem:
-<code>python -m venv <carpeta_venv></code>+<code>python -m venv <carpeta_venv></code>
  
 Típicament Típicament
-<code>python -m venv env</code>+<code>python -m venv env</code>
  
 Veurem que s'ha creat una carepta ''env'' on hi ha els binaris de Python i el gestor de paquets ''pip''. Veurem que s'ha creat una carepta ''env'' on hi ha els binaris de Python i el gestor de paquets ''pip''.
Línia 39: Línia 49:
  
 ===== Virtualenv ===== ===== Virtualenv =====
 +<WRAP important>
 +Si has creat el teu ''env'' amb el //built-in venv// de Python, no cal que segueixis aquesta secció (virtualenv és una forma alternativa de fer el que Python-venv ja ens ha fet). Pots anar directament a la secció "Utilitzant Virtualenv".
 +</WRAP>
 +
 Abans de la versió 3.3 de Python es feia servir la [[https://virtualenv.pypa.io/en/latest/installation.html|utilitat virtualenv]]. Si treballem en Pyhton 2.x o <3.3 només tindrem disponible aquesta opció. Abans de la versió 3.3 de Python es feia servir la [[https://virtualenv.pypa.io/en/latest/installation.html|utilitat virtualenv]]. Si treballem en Pyhton 2.x o <3.3 només tindrem disponible aquesta opció.
  
Línia 48: Línia 62:
 Això ens crearà una carpeta ''envtest'' amb l'intèrpret de Python pertinent i on s'emmagatzemaran les llibreries que instal·lem amb ''pip''. Això ens crearà una carpeta ''envtest'' amb l'intèrpret de Python pertinent i on s'emmagatzemaran les llibreries que instal·lem amb ''pip''.
  
 +===== Utilitzant sudo =====
 <WRAP tip> <WRAP tip>
-Aquestes ordres d'instal·lació del ''virtualenv'' són les úniques que necessiten ''sudo''. **Per treballar com a desenvolupador NO cal fer ''sudo''** llevat de poques excepcions. Si estem en producció, potser cal algun cop, però estigueu atents a fer-ho quan sigui necessari i no fer-ho perquè sí o perquè la instrucció no funciona sense examinar perquè no va.+Aquestes ordres d'instal·lació del ''virtualenv'' (el paquet de PyPI instal·lat amb ''pip''són les úniques que necessiten ''sudo''. 
 + 
 +**Per treballar com a desenvolupador NO cal fer ''sudo''**llevat de poquíssimes excepcions. 
 + 
 +Si estem en producció, potser cal algun cop (quan estem en carpetes del sistema), però estigueu atents a fer-ho quan sigui necessari i no fer-ho perquè sí o perquè la instrucció no funciona sense examinar perquè no va
 + 
 +**La gestió del permisos i propietat dels arxius és fonamental per a la seguretat**.
 </WRAP> </WRAP>
  
Línia 82: Línia 103:
 \\ \\
  
-===== Creant arxiu requirements.php =====+===== Creant arxiu requirements.txt =====
 Per crear l'arxiu, cal que estiguem en el ''virtualenv'' pertinent. Volcarem les seves llibreries amb: Per crear l'arxiu, cal que estiguem en el ''virtualenv'' pertinent. Volcarem les seves llibreries amb:
 <code>(env) $ pip freeze > requirements.txt</code> <code>(env) $ pip freeze > requirements.txt</code>
python_venv.1634548172.txt.gz · Darrera modificació: 2021/10/18 09:09 per enrique_mieza_sanchez