Guía completa de gestión de versiones de Python | Uso exhaustivo de pyenv, venv y Anaconda

目次

1. Introducción

Python es un lenguaje de programación popular utilizado por una amplia gama de usuarios, desde principiantes hasta profesionales. Sin embargo, dado que las versiones de Python se actualizan con frecuencia, muchas personas enfrentan desafíos en el mantenimiento del entorno de desarrollo y la gestión de versiones en diferentes proyectos.

En este artículo, explicamos en detalle la importancia de la gestión de versiones de Python y los métodos para llevarla a cabo. También presentamos cómo seleccionar herramientas de gestión de versiones y ejemplos de su uso práctico, por lo que si desea utilizar Python de manera eficiente, le recomendamos que lo consulte.

1-1. Razones por las que se necesita la gestión de versiones de Python

Para entender por qué es importante la gestión de versiones de Python, consideremos escenarios como los siguientes.

1-1-1. Se necesitan diferentes versiones de Python para cada proyecto

En el desarrollo de sistemas empresariales o proyectos de programación personales, debido a las bibliotecas o frameworks utilizados, a menudo se requiere una versión específica de Python. Por ejemplo:

  • Django 2.2 es compatible con Python 3.5-3.8
  • TensorFlow 1.x es compatible con Python 2.7 o 3.5
  • TensorFlow 2.x requiere Python 3.6 o superior

De esta manera, como la versión de Python recomendada difiere según la herramienta utilizada, si no se gestiona adecuadamente el entorno, existe la posibilidad de que las bibliotecas no funcionen.

1-1-2. Cambiar directamente el Python instalado en el sistema puede causar problemas

En Windows, macOS y Linux, a menudo hay un Python integrado en el sistema instalado. Especialmente en Linux, algunas funciones del SO dependen de Python, por lo que cambiar la versión de Python del sistema puede causar errores inesperados.

Si se sobrescribe la instalación de Python sin usar una herramienta de gestión de versiones, podría afectar el funcionamiento del SO, por lo que es necesario un manejo adecuado.

1-1-3. Unificar el entorno de desarrollo hace que el desarrollo en equipo sea más fluido

En el desarrollo en equipo, es deseable que todos los miembros trabajen en el mismo entorno. Si la versión de Python difiere según el proyecto, el comportamiento puede variar entre desarrolladores, lo que causa errores.

Al utilizar herramientas de gestión de versiones, todos pueden usar un entorno unificado, lo que mejora la eficiencia del desarrollo.

1-2. Métodos para realizar la gestión de versiones de Python

Para realizar la gestión de versiones de Python, hay varios métodos disponibles. Como principales, se utilizan herramientas como las siguientes.

1-2-1. pyenv

La herramienta de gestión de versiones de Python más ampliamente utilizada es «pyenv». Permite cambiar fácilmente entre diferentes versiones de Python y gestionar múltiples versiones sin afectar el Python del sistema.

1-2-2. venv

Es una herramienta de entorno virtual proporcionada como parte de la biblioteca estándar de Python, que permite crear entornos independientes para cada proyecto. Aunque es un poco diferente de la gestión de versiones, es conveniente para crear entornos dependientes de una versión específica de Python.

1-2-3. Anaconda

Es una herramienta para gestionar entornos de Python orientados a la ciencia de datos y el aprendizaje automático, que utiliza el sistema de gestión de paquetes llamado «conda» para manejar las versiones de Python.

1-2-4. asdf

Es una herramienta que permite la gestión de versiones no solo de Python, sino también de Node.js, Ruby y otros lenguajes de programación. Como se puede cambiar la versión de Python por proyecto, es más fácil mantener la consistencia del entorno de desarrollo.

1-3. Resumen

La gestión de versiones de Python es un elemento importante que afecta en gran medida la eficiencia del desarrollo y la estabilidad del sistema. Especialmente para desarrolladores que manejan múltiples proyectos simultáneamente o usuarios que desean probar diferentes versiones de Python, es indispensable usar herramientas de gestión adecuadas.

En la siguiente sección, explicamos en detalle «Cómo verificar la versión de Python». Al comprender qué versión de Python está instalada en su entorno, estará preparado para realizar una gestión de versiones fluida.

2. Cómo verificar la versión de Python

Antes de gestionar las versiones de Python, es importante entender cómo verificar la versión de Python que se está utilizando actualmente. Si no se comprende correctamente la versión, podría ejecutarse en un entorno diferente al esperado, lo que puede causar problemas.

En esta sección, explicaremos cómo verificar la versión de Python en cada sistema operativo: Windows, macOS y Linux.

2-1. Cómo verificar la versión de Python en Windows

En el entorno de Windows, se puede verificar la versión de Python utilizando el Símbolo del sistema (cmd) o PowerShell.

2-1-1. Cómo verificarlo en el Símbolo del sistema

  1. Presione la tecla [Win] + tecla [R], escriba «cmd» y abra el Símbolo del sistema.
  2. Ingrese el siguiente comando y presione Enter.
   python --version

o

   python -V
  1. La versión actual de Python se mostrará en la pantalla.
   Python 3.10.4

2-1-2. Cómo verificarlo en PowerShell

Al utilizar PowerShell para verificarlo, los pasos básicos son los mismos.

  1. Abra el menú Inicio y busque «PowerShell» para iniciar PowerShell.
  2. Ingrese el siguiente comando y presione Enter.
   python --version
  1. La versión de Python se mostrará en la pantalla.

Notas:

  • Dependiendo de la ubicación de instalación de Python, es posible que necesite usar python3 en lugar del comando python.
  • Si el comando no se reconoce, verifique si la configuración de las variables de entorno es adecuada.

2-2. Cómo verificar la versión de Python en macOS

En macOS, Python suele estar instalado de forma predeterminada, por lo que se puede verificar la versión utilizando la Terminal.

2-2-1. Cómo verificarlo en la Terminal

  1. Presione [Command] + [Espacio], escriba «Terminal» y abra la Terminal.
  2. Ingrese el siguiente comando.
   python3 --version

o

   python3 -V
  1. Se mostrará el resultado.
   Python 3.9.7

2-2-2. Prestar atención a la diferencia entre Python 2 y Python 3

En macOS, el comando python puede estar vinculado a Python 2.x. Para usar Python 3.x, generalmente se utiliza el comando python3.

python --version  # Posibilidad de que se muestre Python 2.x
python3 --version  # Se mostrará la versión de Python 3.x

Notas:

  • En las versiones más recientes de macOS (Big Sur en adelante), Python 2.x está obsoleto y, por defecto, se utiliza Python 3.x en la mayoría de los casos.

2-3. Cómo verificar la versión de Python en Linux

En Linux, Python está preinstalado en muchas distribuciones (Ubuntu, Debian, CentOS, Fedora, etc.). Para verificar la versión, utilice la terminal.

2-3-1. Cómo verificarlo en la terminal

  1. Abra la terminal y ejecute el siguiente comando.
   python3 --version

o

   python3 -V
  1. El resultado de salida será similar al siguiente.
   Python 3.8.10

2-3-2. Cómo verificar si Python 2 está instalado

En algunos sistemas antiguos, Python 2.x aún puede estar presente. En ese caso, puede verificarlo con el siguiente comando.

python --version

Si este comando muestra Python 2.x.x, es posible que Python 2.x sea el predeterminado.

2-3-3. Si Python no está instalado

Si ejecuta python3 --version y aparece un error como «Command ‘python3’ not found», es posible que Python no esté instalado. En ese caso, puede instalarlo con los siguientes comandos.

Sistemas Ubuntu/Debian:

sudo apt update
sudo apt install python3

Sistemas CentOS/RHEL:

sudo yum install python3

Fedora:

sudo dnf install python3

2-4. Resumen

Los métodos para verificar la versión de Python varían ligeramente según el sistema operativo (Windows, macOS, Linux), pero básicamente se utilizan los comandos python --version o python3 --version.

  • Windows → En el Símbolo del sistema (cmd) o PowerShell: python --version
  • macOS → En la Terminal: python3 --version
  • Linux → En la Terminal: python3 --version; si hay Python 2, también verifique python --version

Para gestionar correctamente las versiones, es importante primero comprender correctamente el entorno actual. En la siguiente sección, explicaremos en detalle cómo elegir herramientas de gestión de versiones de Python y sus características.

3. Cómo elegir una herramienta de gestión de versiones de Python

Para gestionar adecuadamente las versiones de Python, lo más eficiente es utilizar herramientas especializadas. Sin embargo, dado que existen diversas herramientas de gestión de versiones, es posible que te sientas confundido sobre cuál elegir.

En esta sección, introduciremos herramientas representativas utilizadas para la gestión de versiones de Python, y explicaremos sus características y usos adecuados.

3-1. Tipos de herramientas de gestión de versiones de Python

Las herramientas de gestión de versiones de Python incluyen los siguientes tipos.

Nombre de la herramientaUsos principales y característicasSO compatiblesFacilidad de uso
pyenvPosible cambiar fácilmente entre diferentes versiones de PythonWindows, macOS, Linux
venvFunción estándar de Python para entornos virtuales. Posible crear entornos por proyectoTodos los SO
Anaconda (conda)Gestión de entornos orientada a ciencia de datos y aprendizaje automáticoWindows, macOS, Linux
asdfPosible gestionar versiones de múltiples lenguajes de programaciónWindows, macOS, Linux

Cada herramienta tiene ventajas y desventajas, y es importante seleccionar la adecuada según el uso.

3-2. pyenv (óptimo para la gestión de versiones de Python)

3-2-1. ¿Qué es pyenv?

pyenv es una herramienta que permite cambiar fácilmente las versiones de Python.
Es conveniente cuando se necesita utilizar diferentes versiones de Python para proyectos o entornos de desarrollo específicos.

3-2-2. Ventajas de pyenv

  • Posible coexistir múltiples versiones de Python
  • No afecta al Python del sistema
  • Posible cambiar la versión con un solo comando
  • Disponible en Windows, macOS, Linux

3-2-3. Recomendado para personas como

  • Quienes desean usar diferentes versiones de Python por desarrollo
  • Quienes desean cambiar fácilmente las versiones
  • Quienes no desean cambiar la versión global de Python

3-3. venv (cuando se utiliza un entorno virtual)

3-3-1. ¿Qué es venv?

venv es la herramienta estándar de Python para crear entornos virtuales. Su propósito no es gestionar las versiones de Python en sí, sino crear entornos independientes por proyecto.

3-3-2. Ventajas de venv

  • Integrado de forma estándar en Python, no requiere instalación adicional
  • Posible gestionar diferentes bibliotecas por entorno virtual
  • Posible separar las dependencias del proyecto

3-3-3. Recomendado para personas como

  • Quienes desean separar los entornos de bibliotecas por proyecto
  • Quienes desean gestionar entornos sin instalar nuevas herramientas
  • Quienes desean aprovechar entornos virtuales en lugar de gestionar versiones de Python

3-4. Anaconda (orientado a ciencia de datos y aprendizaje automático)

3-4-1. ¿Qué es Anaconda?

Anaconda es una distribución de Python optimizada para el desarrollo en ciencia de datos y aprendizaje automático. Utiliza la herramienta de gestión de paquetes conda para gestionar versiones de Python y bibliotecas.

3-4-2. Ventajas de Anaconda

  • Incluye bibliotecas orientadas a ciencia de datos (numpy, pandas, scikit-learn, etc.)
  • Buena compatibilidad con Jupyter Notebook
  • Gestión de paquetes sencilla (usando el comando conda)

3-4-3. Recomendado para personas como

  • Quienes realizan aprendizaje automático o análisis de datos
  • Quienes usan frecuentemente Jupyter Notebook
  • Quienes desean configurar fácilmente el entorno de Python

3-5. asdf (herramienta de gestión de versiones compatible con múltiples lenguajes)

3-5-1. ¿Qué es asdf?

asdf es una herramienta para gestionar de forma unificada las versiones no solo de Python, sino también de Node.js, Ruby, Go y otros lenguajes de programación.

3-5-2. Ventajas de asdf

  • Posible gestionar lenguajes distintos a Python de forma unificada
  • Posible configurar diferentes versiones por proyecto
  • Posible cambiar Python sin afectar el entorno global

3-5-3. Recomendado para personas como

  • Quienes usan lenguajes de programación distintos a Python
  • Quienes desean cambiar flexiblemente las versiones por proyecto
  • Quienes desean gestionar eficientemente múltiples entornos de desarrollo

3-6. ¿Qué herramienta elegir?

Seleccionando según los siguientes criterios, podrás encontrar la herramienta de gestión de versiones más adecuada para ti.

Propósito y usoHerramienta óptima
Desea cambiar fácilmente entre diferentes versiones de Pythonpyenv
Desea usar entornos virtualesvenv
Desea realizar aprendizaje automático o análisis de datosAnaconda
Desea gestionar de forma unificada lenguajes distintos a Pythonasdf

3-7. Resumen

Las herramientas de gestión de versiones de Python tienen características diferentes. La elección de qué herramienta usar depende de «¿para qué usos se utiliza Python?».

  • Gestión de versiones generalpyenv
  • Aprovechar entornos virtualesvenv
  • Ciencia de datos y aprendizaje automáticoAnaconda
  • Gestionar lenguajes distintos a Pythonasdf

En la siguiente sección, explicaremos en detalle el «aprovechamiento de entornos virtuales». Introduciremos métodos para gestionar adecuadamente las dependencias diferentes por proyecto y mantener la integridad del entorno utilizando entornos virtuales.

4. Uso de entornos virtuales

Para gestionar adecuadamente las versiones de Python, es esencial utilizar entornos virtuales (Virtual Environment). Al usar entornos virtuales, se puede construir un entorno independiente para cada proyecto, permitiendo la coexistencia de diferentes bibliotecas y versiones de Python.

En esta sección, se explica en detalle el concepto básico de los entornos virtuales y cómo usar las principales herramientas (venv, Poetry).

4-1. ¿Qué es un entorno virtual?

Un entorno virtual es un mecanismo para separar el entorno de ejecución de Python por proyecto. Normalmente, los paquetes (bibliotecas) de Python se instalan en todo el sistema, pero al utilizar un entorno virtual, se pueden gestionar paquetes diferentes para cada proyecto.

4-1-1. Ventajas de usar entornos virtuales

  • Se pueden evitar conflictos de bibliotecas entre proyectos diferentes
  • Por ejemplo, si el proyecto A usa Django 3.2 y el proyecto B usa Django 4.0, con un entorno virtual es posible la coexistencia.
  • Se puede desarrollar sin ensuciar el entorno de Python del sistema
  • Se puede mantener un entorno limpio sin afectar el Python del sistema.
  • En el desarrollo en equipo, es fácil unificar el entorno
  • Al utilizar entornos virtuales y compartir requirements.txt o pyproject.toml, todos los miembros del equipo pueden construir el mismo entorno.

4-2. Creación de entornos virtuales con venv

Python incluye de forma estándar la herramienta venv para crear entornos virtuales. No es necesario instalar nada adicional y se puede empezar a usar inmediatamente.

4-2-1. Método para crear un entorno virtual

  1. Crear un directorio para el proyecto
   mkdir my_project
   cd my_project
  1. Crear el entorno virtual
   python3 -m venv venv

Aquí, venv es el nombre de la carpeta del entorno virtual. Se puede especificar cualquier nombre.

4-2-2. Activación del entorno virtual

Al activar el entorno virtual, se puede usar el Python y las bibliotecas específicas de ese entorno.

En Windows:

venv/Scripts/activate

En macOS/Linux:

source venv/bin/activate

Al activarlo, se muestra (venv) en el prompt.

(venv) user@hostname:~/my_project$

4-2-3. Desactivación del entorno virtual

Para finalizar el entorno virtual, ejecutar el siguiente comando.

deactivate

4-2-4. Eliminación del entorno virtual

Para eliminar un entorno virtual que ya no se necesita, simplemente eliminar la carpeta completa.

En macOS/Linux:

rm -rf venv

En Windows:

rd /s /q venv

4-3. Gestión de entornos virtuales y dependencias con Poetry

Además de la biblioteca estándar de Python venv, Poetry es popular como herramienta para una gestión de paquetes más avanzada.

4-3-1. ¿Qué es Poetry?

Poetry es una herramienta que gestiona de forma integral la gestión de dependencias y la creación de entornos virtuales de proyectos Python. Es más flexible que venv y es adecuada para el desarrollo moderno de Python.

4-3-2. Instalación de Poetry

Para instalar Poetry, ejecutar el siguiente comando.

curl -sSL https://install.python-poetry.org | python3 -

Después de la instalación, se puede verificar con el siguiente comando.

poetry --version

4-3-3. Creación de entornos virtuales con Poetry

Los pasos para crear un nuevo proyecto con Poetry y configurar el entorno virtual son los siguientes.

  1. Crear la carpeta del proyecto
   mkdir poetry_project
   cd poetry_project
  1. Inicializar el proyecto con Poetry
   poetry init
  • Ingresar la información del proyecto de forma interactiva.
  • Se crea un archivo de configuración llamado pyproject.toml.
  1. Crear el entorno virtual
   poetry install

De esta forma, se crea automáticamente el entorno virtual y se instalan los paquetes necesarios.

  1. Activar el entorno virtual
   poetry shell
  1. Agregar y gestionar paquetes
   poetry add requests
   poetry add numpy@latest
  1. Desactivar el entorno virtual
   exit

4-4. Comparación entre venv y Poetry

CaracterísticasvenvPoetry
Herramienta estándar de Python❌ (requiere instalación adicional)
Creación de entornos virtuales
Gestión de dependencias❌ (gestión manual)✅ (gestión automática)
Gestión de paquetespip se usapoetry add comando para gestión sencilla
Para principiantes△ (hay algo de costo de aprendizaje)

Conclusión:

  • Si se quiere usar entornos virtuales de forma simple → venv
  • Si se quiere automatizar la gestión de dependencias → Poetry

4-5. Resumen

Al utilizar entornos virtuales, la gestión de bibliotecas de Python se puede realizar de manera eficiente. Especialmente, cuando se manejan bibliotecas diferentes por proyecto o no se quiere ensuciar el entorno de Python del sistema, lo mejor es utilizar venv o Poetry.

  • venv → Creación simple de entornos virtuales (estándar de Python)
  • Poetry → Herramienta avanzada de entornos virtuales que incluye gestión de dependencias

En la siguiente sección, se explica en detalle las mejores prácticas para la gestión de versiones y dependencias. Aprendamos los puntos clave para operar el entorno de desarrollo de Python de manera más eficiente.

5. Mejores prácticas para la gestión de versiones y dependencias

Una vez comprendida la gestión de versiones de Python y el uso de entornos virtuales, presentamos mejores prácticas útiles en el entorno de desarrollo real. Al implementar métodos de gestión adecuados, se puede prevenir la confusión en el entorno y operar proyectos de Python de manera eficiente.

5-1. Crear un entorno virtual para cada proyecto

Para gestionar adecuadamente las versiones de Python, lo básico es crear un entorno virtual para cada proyecto.
Si se usa Python del sistema tal cual, es fácil que ocurran conflictos de bibliotecas o contaminación del entorno.

5-1-1. Métodos recomendados para la gestión de entornos virtuales

  1. Crear un entorno virtual para cada proyecto
   python3 -m venv venv
  1. Activar el entorno virtual
   source venv/bin/activate  # macOS/Linux
   venvScriptsctivate  # Windows
  1. Instalar las bibliotecas
   pip install requests pandas

Puntos:

  • Al crear un entorno virtual, no interferirá con las bibliotecas de otros proyectos.
  • En el desarrollo en equipo, es más fácil reproducir un entorno consistente.

5-2. Clarificación y gestión de dependencias

Al compartir un proyecto o para reconstruir el entorno en el futuro, es importante gestionar explícitamente las dependencias (la lista de bibliotecas instaladas).

5-2-1. Utilizar requirements.txt

En Python, con el comando pip freeze se puede guardar la lista de bibliotecas instaladas actualmente en requirements.txt.

  1. Registrar las bibliotecas del entorno actual
   pip freeze > requirements.txt
  1. Reinstalar las mismas bibliotecas en otro entorno
   pip install -r requirements.txt

Ventajas:

  • Se puede compartir fácilmente el mismo entorno con los miembros del equipo.
  • En un nuevo entorno, se puede reproducir rápidamente una configuración consistente de bibliotecas.

5-2-2. Utilizar pyproject.toml (en el caso de Poetry)

Si se usa Poetry, se recomienda especificar las dependencias en pyproject.toml.

  1. Agregar un paquete
   poetry add numpy pandas
  1. Verificar el archivo de dependencias
   pyproject.toml
   poetry.lock

Ventajas:

  • Se pueden gestionar las dependencias de manera más concisa que con pip freeze.
  • Es fácil fijar versiones, lo que mejora la reproducibilidad del entorno.

5-3. Gestionar por separado el entorno de desarrollo y el de producción

En el entorno de desarrollo y el de producción, las versiones de las bibliotecas utilizadas o la configuración pueden diferir. Por lo tanto, lo mejor es gestionar claramente las bibliotecas exclusivas para desarrollo y las necesarias para el entorno de producción.

5-3-1. Preparar requirements-dev.txt

Si se separan las bibliotecas necesarias solo para el entorno de desarrollo (por ejemplo, pytest o herramientas de prueba y formateo como black), se puede mantener el entorno de producción simple.

Ejemplo:

pip freeze > requirements-dev.txt

En el entorno de producción, usar solo el básico requirements.txt, y en el de desarrollo combinarlo con requirements-dev.txt facilita la gestión.

5-4. Unificación del entorno en el desarrollo en equipo

En el desarrollo en equipo, es importante unificar el entorno de cada miembro.
Presentamos puntos para gestionar adecuadamente las versiones y avanzar el proyecto de manera fluida.

5-4-1. Unificar la versión de Python

  • Utilizar pyenv para que el equipo use una versión unificada de Python.
  • Crear un archivo .python-version en la raíz del proyecto para fijar la versión de Python.

Ejemplo:

echo "3.10.4" > .python-version

5-4-2. Utilizar .venv

Si el equipo usa venv, crear el entorno virtual no en el directorio venv sino en una carpeta oculta llamada .venv facilita la gestión con Git.

Ejemplo:

python3 -m venv .venv

Y agregar .gitignore a .venv/ para que la carpeta del entorno virtual no se incluya en el repositorio es una mejor práctica.

5-5. Problemas comunes y soluciones

5-5-1. El Python instalado con pyenv no se reconoce

Solución: Ejecutar pyenv init para aplicarlo al shell.

pyenv init

Además, configurar adecuadamente la variable de entorno PATH.

5-5-2. El entorno virtual venv no se activa

Solución: En Windows, es necesario cambiar la directiva de ejecución de PowerShell.

Set-ExecutionPolicy Unrestricted -Scope Process

5-5-3. No se puede importar después de pip install

Solución: Verificar si el entorno virtual está activado.

which python
which pip

Si el resultado de la salida no es la ruta del entorno virtual, activar el entorno virtual con source venv/bin/activate.

5-6. Resumen

Al gestionar adecuadamente las versiones de Python y las dependencias, se mejora la eficiencia del desarrollo y se minimizan los problemas del entorno.

Puntos de las mejores prácticas

  1. Crear un entorno virtual para cada proyecto
  2. Gestionar las dependencias con requirements.txt o pyproject.toml
  3. Gestionar por separado el entorno de desarrollo y el de producción
  4. En el desarrollo en equipo, unificar la versión de Python y eliminar las diferencias en el entorno

6. FAQ(よくある質問)

Pythonのバージョン管理や仮想環境の活用については、初めて導入する人や経験者でも疑問に思うことが多い分野です。このセクションでは、よくある質問をピックアップし、具体的な回答を提供します。

6-1. 複数のPythonバージョンを同時に使用できますか?

はい、可能です。
pyenvasdf を利用すれば、異なるPythonバージョンをシステム内に共存させ、プロジェクトごとに適切なバージョンを使用できます。

解決策: pyenv を使う場合

  1. Pythonの異なるバージョンをインストール
   pyenv install 3.9.7
   pyenv install 3.10.4
  1. グローバルまたはローカル(プロジェクトごと)でバージョンを指定
   pyenv global 3.10.4  # システム全体でデフォルトのPythonを設定
   pyenv local 3.9.7  # 特定のプロジェクトフォルダ内でPython 3.9.7を使用

ポイント: pyenv を使えば、システムのPythonを変更せずに複数バージョンを管理できます。

6-2. 仮想環境を削除する方法は?

仮想環境は、単純にディレクトリごと削除すればOKです。

venv を使用している場合

rm -rf venv  # macOS/Linux
rd /s /q venv  # Windows

Poetry の仮想環境を削除する場合

poetry env remove python

ポイント: 仮想環境を削除しても、requirements.txtpyproject.toml があれば、再作成が容易です。

6-3. 特定のプロジェクトで異なるPythonバージョンを使用するには?

pyenv または venv を使うのが一般的な方法です。

pyenv の場合

  1. プロジェクトフォルダ内でPythonのバージョンを指定
   pyenv local 3.8.10
  1. 確認
   python --version
   Python 3.8.10

venv の場合

  1. プロジェクトごとに異なるPythonバージョンの仮想環境を作成
   python3.8 -m venv venv38
   python3.10 -m venv venv310
  1. 使用する環境を有効化
   source venv38/bin/activate  # Python 3.8 の環境

ポイント: pyenv はバージョンの切り替えに最適で、venv はプロジェクトごとの環境管理に適しています。

6-4. バージョン管理ツールの選択基準は?

条件推奨ツール
複数のPythonバージョンを管理したいpyenv
シンプルな仮想環境を作りたいvenv
データサイエンス・機械学習用に環境を整えたいAnaconda
Python以外の言語もバージョン管理したいasdf

ポイント: 目的に応じたツールを選ぶことで、環境管理がより簡単になります。

6-5. pyenv を使っているのに python --version で変更が反映されない

この問題は、シェルの設定が適切に行われていない可能性があります。

解決策

  1. pyenv の初期化コマンドを実行
   pyenv init
  1. .bashrc または .zshrc に以下の行を追加(~/.bash_profile も可)
   export PATH="$HOME/.pyenv/bin:$PATH"
   eval "$(pyenv init --path)"
   eval "$(pyenv virtualenv-init -)"
  1. 設定を反映
   source ~/.bashrc  # or source ~/.zshrc

ポイント: pyenv の設定がシェルに適用されていることを確認しましょう。

6-6. venvPoetry はどちらを使うべき?

項目venvPoetry
Python標準ツール❌(別途インストールが必要)
仮想環境の作成
依存関係管理❌(手動で管理)✅(自動管理)
初心者向け△(若干の学習コストあり)

結論:

  • シンプルな仮想環境が必要なら venv
  • 依存関係を自動管理したいなら Poetry

ポイント: Poetry はやや学習コストがあるが、長期的には便利なツール。

6-7. pip install したライブラリをプロジェクトに固定するには?

pip freeze を使用して requirements.txt を作成します。

pip freeze > requirements.txt

そして、別の環境でインストールするには以下のコマンドを使用します。

pip install -r requirements.txt

ポイント: pip freeze を活用すると、環境の再現性を確保できます。

6-8. まとめ

Pythonのバージョン管理や仮想環境について、よくある疑問を解決しました。

ポイントを整理

  • 複数バージョンのPythonを管理するなら pyenv
  • プロジェクトごとに仮想環境を使うなら venvPoetry
  • 依存関係を明確にするには requirements.txtpyproject.toml を活用
  • Windowsでは pyenv-win を利用し、環境変数の設定を確認

これでPythonのバージョン管理に関する理解が深まり、スムーズに開発環境を整えられるようになるでしょう。

RUNTEQ(ランテック)|超実戦型エンジニア育成スクール