Categorías
Python

Cómo ejecutar las secuencias de comandos de Python

 

Tabla de Contenidos

  • ShellsUnix ShellsWindows Conchas
  • Unix Conchas
  • de Windows Conchas
  • Terminal EmulatorsmacOS TerminalsWindows Terminales Terminales
  • MacOS Terminales
  • de Windows
  • versión Python Managementpyenvconda
  • pyenv
  • Conda
  • virtual Environmentsvenvpyenv-virtualenvcondapipenv
  • Venv
  • pyenv-virtualenv
  • Conda
  • editores de texto
  • Consejos Medio Ambiente Python pipenv
  • paquete Managementpippipenvpoetryconda
  • pip
  • pipenv
  • poesía
  • Conda
  • Python InterpretersIPythonbpython
  • IPython
  • bpython
  • y trucos Terminales Terminales
  • Conclusión
  • Unix conchas
  • de Windows conchas
  • MacOS
  • de Windows

Conda

  • pyenv
  • Venv
  • pyenv-virtualenv
  • Conda
  • pipenv
  • pip
  • pipenv
  • poesía
  • Conda
  • IPython
  • bpython

Cuando se está aprendiendo una nueva lenguaje de programación, una gran cantidad de su tiempo y esfuerzo en marcha la comprensión de la sintaxis, estilo de código, y construido en el utillaje. Esto es tan cierto para Python como lo es para cualquier otro idioma. Una vez que obtener suficiente familiaridad que estar cómodo con las entradas y salidas de Python, puede empezar a invertir tiempo en la construcción de un entorno de Python que fomente su productividad.

Su cáscara es más que un programa de pre-compilados que se proporcione como está. Es un marco en el que se puede construir un ecosistema. Este ecosistema vendrá para adaptarse a sus necesidades para que pueda pasar menos tiempo y tocar el violín más tiempo pensando en el próximo gran proyecto en el que está trabajando.

Aunque no hay dos desarrolladores tienen la misma configuración, hay una serie de opciones de todo el mundo se enfrenta al cultivar su entorno Python. Es importante entender cada una de estas decisiones y las opciones disponibles para usted!

Al final de este artículo, usted será capaz de responder a preguntas como:

  • Qué cáscara debe usar? Lo que el terminal se debe usar?
  • qué versión (s) de Python puedo usar?
  • ¿Cómo usar las dependencias para diferentes proyectos?
  • ¿Cómo puedo hacer que mis herramientas hacen parte del trabajo para mí?

Una vez que haya respondido a estas preguntas para usted, usted puede embarcarse en el viaje de crear un entorno de Python para llamar a su propio. ¡Empecemos! Bono

gratuito: Haga clic aquí para obtener acceso a una clase gratuita de 5 días de duración que muestra cómo evitar problemas de gestión de la dependencia común con herramientas como Pip, PyPI, virtualenv y archivos requisitos.

Conchas

Cuando se utiliza una interfaz de línea de comandos (CLI), ejecutar comandos y ver su producción. Un cáscara es un programa que proporciona esta interfaz (por lo general basado en texto) en su caso. Conchas menudo proporcionan su propio lenguaje de programación que se pueden utilizar para manipular archivos, instalar software, y así sucesivamente.

Hay conchas más único que se podía razonablemente que aparece aquí, por lo que verá unos pocos prominentes. Otros difieren en sintaxis o características mejoradas, pero generalmente proporcionan la misma funcionalidad de núcleo. Los depósitos

Unix

Unix es una familia de sistemas operativos desarrollados en primer lugar en los primeros días de la informática. La popularidad de Unix ha durado hasta hoy, en gran medida inspirar Linux y MacOS. Los primeros proyectiles fueron desarrollados para su uso con sistemas operativos Unix y Unix.

Bourne Shell (sh)

El shell Bourne-desarrollado por Stephen Bourne para los Laboratorios Bell en 1979, fue uno de los primeros en incorporar la idea de variables de entorno, condicionales y bucles. Se ha proporcionado una base sólida para muchos otros proyectiles utilizados en la actualidad y que está disponible en la mayoría de los sistemas de / bin / sh.

Bourne-Again Shell (bash)

Construida sobre el éxito de la cáscara original de Bourne, golpe introdujo características mejoradas de interacción del usuario. Con fiesta, se obtiene implementación del tabulador, la historia y la búsqueda de comodín para los comandos y caminos. El lenguaje de programación fiesta ofrece más tipos de datos, como matrices.

Zsh (zsh)

zsh combina muchas de las mejores características de otras shells junto con algunos de sus propios trucos en una sola experiencia. zsh ofertas de corrección automática de comandos mal escritas, taquigrafía para la manipulación de varios archivos y opciones avanzadas para personalizar pronta su comando.

zsh también proporciona un marco para la personalización de profundidad. El proyecto Oh My Zsh suministra un amplio conjunto de temas y plugins, y con frecuencia se utiliza la mano con zsh.

macOS se venderá con zsh como su shell por defecto a partir de Catalina, en declaraciones a la popularidad de la cáscara. Considere dar a conocer a ti mismo con zsh ahora para que se siente cómodo con ella en el futuro.

Xonsh

Si se siente particularmente aventurero, le puede dar una oportunidad Xonsh. Xonsh es una cáscara que combina algunas de las características de otros Unix-como conchas con el poder de sintaxis Python. Puede utilizar el idioma que ya sabe para llevar a cabo tareas en el sistema de archivos y así sucesivamente.

Aunque Xonsh es de gran alcance, que carece de la compatibilidad con otras conchas tienden a compartir. Puede que no seas capaz de ejecutar varios scripts de shell existentes en Xonsh como resultado. Si encuentras que te gusta Xonsh, pero la compatibilidad es una preocupación, entonces se puede utilizar Xonsh como complemento de sus actividades en una cáscara más ampliamente utilizado.

de Windows Conchas

forma similar a Unix sistemas operativos, Windows también ofrece una serie de opciones cuando se trata de conchas. Las conchas que ofrece Windows varían en características y sintaxis, por lo que puede que tenga que probar varios para encontrar uno que te guste.

CMD (cmd.exe)

CMD (abreviatura de “comando”) es el shell por defecto CLI para Windows. Es el sucesor de COMMAND.COM, la carcasa construida para DOS (Disk Operating System).

Debido DOS y Unix evolucionaron de forma independiente, los comandos y la sintaxis de CMD son notablemente diferentes de conchas construidos para sistemas similares a Unix. Sin embargo, todavía CMD proporciona la misma funcionalidad básica para la navegación y la manipulación de archivos, ejecutar comandos, y la visualización de salida.

PowerShell

PowerShell fue lanzado en 2006 y también se incluye con Windows. Proporciona Unix alias para la mayoría de los comandos, por lo que si usted está viniendo a Windows desde MacOS o Linux o tienen que usar ambos, entonces PowerShell podría ser ideal para usted.

PowerShell es mucho más poderoso que el CMD. Con PowerShell puede:

  • Pipe la salida de un comando a la entrada de otro tareas
  • Automatizar a través de la gestión de ventanas expuestas cuenta
  • uso de un lenguaje de script para llevar a cabo tareas complejas

Subsistema de Windows para Linux

Microsoft tiene dio a conocer un subsistema de Windows para Linux (WSL) para correr Linux directamente en Windows. Si instala WSL, entonces puede utilizar zsh, fiesta, o cualquier otro tipo Unix shell. Si quieres fuerte compatibilidad a través de sus ventanas y entornos MacOS o Linux, a continuación, asegúrese de darle una oportunidad WSL. También puede considerar un arranque dual Linux y Windows como alternativa.

Ver esta comparación de los shells de comandos para la cobertura exhaustiva.

emuladores de terminal

Los primeros desarrolladores utilizan terminales para interactuar con un ordenador central mainframe. Estos fueron los dispositivos con un teclado y una pantalla o impresora que mostrar la salida calculada.

Hoy en día, las computadoras son portátiles y no requieren dispositivos separados para interactuar con ellos, pero la terminología todavía permanece. Mientras que una cáscara proporciona el símbolo e intérprete utilice para interactuar con las herramientas de la CLI basados ​​en texto, un terminal de emulador (a menudo acortado a terminal de ) es la aplicación gráfica ejecutar acceder al shell.

Casi cualquier terminal se encuentra con deberían apoyar las mismas características básicas: Los colores de texto

  • para resaltado de sintaxis en el código o distinguir texto significativo en la salida del comando
  • de desplazamiento para ver un comando anterior o su salida
  • Copia / pega para transferir texto dentro o fuera de la concha de otros programas
  • fichas para la ejecución de varios programas a la vez o separar su trabajo en diferentes sesiones de terminales

MacOS

las opciones de terminal disponible para MacOS son todos con todas las funciones, que difieren principalmente en la estética y integraciones específicas con otras herramientas.

Terminal

Si está usando un Mac, entonces usted puede haber usado el incorporado en la aplicación Terminal antes. soportes terminales toda la funcionalidad habitual, y también puede personalizar la combinación de colores y unas cuantas teclas de acceso rápido. Es una herramienta lo suficientemente bueno si usted no necesita muchas campanas y silbatos. Puede encontrar la aplicación Terminal en Aplicaciones → Utilidades → Terminal en MacOS.

iTerm2

He sido un usuario de largo plazo de iTerm2. Se necesita la experiencia del desarrollador en Mac un paso más allá, ofreciendo una gama mucho más amplia de opciones de personalización y productividad que le permiten:

  • Integración con el shell para saltar rápidamente a los comandos introducidos anteriormente
  • aduana crea el resalto de búsqueda plazo en la salida desde los comandos
  • Abrir URLs y archivos que aparecen en el terminal con Cmd + clic barcos API

una pitón con las últimas versiones de iTerm2, por lo que incluso puede mejorar su Python chuletas mediante el desarrollo de personalizaciones más complejas!

iTerm2 es lo suficientemente popular como para disfrutar de primera clase integración con otras herramientas, y tiene un saludable plugins construcción de la comunidad y así sucesivamente. Es una buena elección debido a su ciclo de lanzamiento más frecuentes en comparación con la terminal, que sólo actualiza tan a menudo como lo hace macOS.

Hyper

Un recién llegado, Hyper es un terminal construido sobre Electrón, un marco para la creación de aplicaciones de escritorio usando tecnologías web. aplicaciones de electrones son muy personalizable, ya que son “solo JavaScript” bajo el capó. Puede crear cualquier funcionalidad que se puede escribir el código JavaScript para.

Por otra parte, JavaScript es un lenguaje de programación de alto nivel y no siempre va a realizar, así como las lenguas de bajo nivel como Objective-C o Swift. Sea consciente de los plugins que instale o cree! Terminales

de Windows

Al igual que con las opciones de la cáscara, las opciones de terminal de Windows varían ampliamente en la utilidad. Algunos están fuertemente unido a una carcasa particular, así.

Símbolo del sistema Prompt

Comando es la aplicación gráfica que puede utilizar para el trabajo con CMD en Windows. Al igual que el CMD, es una herramienta muy básicos para conseguir un par de cosas pequeñas hechas. Aunque el símbolo del sistema y proporcionan CMD menos funciones que otras alternativas, se puede estar seguro de que van a estar disponibles en casi cada instalación de Windows y en un lugar fijo.

Cygwin

Cygwin es una suite de terceros de herramientas para Windows que proporciona un envoltorio similar a Unix. Este fue mi configuración preferida cuando estaba en Windows, pero puede considerar la adopción del Subsistema de Windows para Linux, ya que recibe más tracción y pulir.

Windows Terminal

Microsoft lanzó recientemente un terminal de fuente abierta para Windows 10 llamada Windows Terminal. Se le permite trabajar en CMD, PowerShell, e incluso el Subsistema de Windows para Linux. Si necesita hacer una buena cantidad de trabajo shell en Windows, a continuación, Windows Terminal es probablemente la mejor opción! Windows Terminal se encuentra todavía en beta de última, por lo que no se incluye con Windows hasta la fecha. Consulte la documentación para obtener instrucciones sobre cómo obtener acceso.

Python gestión de versiones

con su elección de terminal y Shell hecho, se puede centrar su atención en su entorno Python específicamente.

Algo que finalmente va a tener es la necesidad de ejecutar varias versiones de Python. Proyectos que utiliza solamente pueden funcionar en algunas versiones , o que pueda estar interesado en la creación de un proyecto que soporta múltiples versiones de Python . Puede configurar el entorno de Python para dar cabida a estas necesidades.

MacOS y la mayoría de los sistemas operativos basados ​​en Unix vienen con una versión de Python instalado de forma predeterminada. Esto a menudo se llama el sistema Python . El sistema Python funciona muy bien, pero por lo general fuera de fecha. Al escribir estas líneas, MacOS High Sierra aún se envía con Python 2.7.10 como el sistema Python .

Nota : Es casi seguro que desee instalar la última versión de Python como mínimo, por lo que tendrá por lo menos dos versiones de Python ya. Es importante que deje el sistema Python como el por defecto, ya que muchas partes del sistema se basan en el Python por defecto de ser una versión específica

Se. Esta es una de las muchas razones para personalizar el entorno de Python!

¿Cómo navegar esto? Utillaje está aquí para ayudar.

pyenv

pyenv es una herramienta madura para la instalación y la gestión de múltiples versiones de Python en MacOS. Recomiendo instalarlo con Homebrew. Si se está utilizando Windows, puede utilizar pyenv-ganar. Después de que tienes instalado pyenv, puede instalar varias versiones de Python en su entorno de Python con unos pocos comandos cortos:

$ pyenv versions
* system
$ python --version
Python 2.7.10
$ pyenv install 3.7.3 # This may take some time
$ pyenv versions
* system
3.7.3

Puede administrar el cual Python desea utilizar en su sesión actual, a nivel mundial, o tarifa por -project base también. pyenv hará que el punto de comandos Python para que sea Python que se especifique. Tenga en cuenta que ninguna de estas anulaciones el sistema por defecto de Python para otras aplicaciones, por lo que es seguro de usar ellos sin embargo que funcionan mejor para usted dentro de su entorno de Python:

$ pyenv global 3.7.3
$ pyenv versions
system
* 3.7.3 (set by /Users/dhillard/.pyenv/version)

$ pyenv local 3.7.3
$ pyenv versions
system
* 3.7.3 (set by /Users/dhillard/myproj/.python-version)

$ pyenv shell 3.7.3
$ pyenv versions
system
* 3.7.3 (set by PYENV_VERSION environment variable)

$ python --version
Python 3.7.3

porque utilizo una versión específica de Python para el trabajo, la última versión de Python para proyectos personales, y múltiples versiones para probar proyectos de código abierto, pyenv ha demostrado ser una manera bastante suave para que maneje todas estas versiones diferentes dentro de mi propio entorno Python. Consulte Administración de versiones de Python múltiples con pyenv para obtener una descripción detallada de la herramienta.

Conda

Si estás en la comunidad científica de datos, es posible que ya esté utilizando Anaconda (o Miniconda). Anaconda es una especie de ventanilla única para el software de la ciencia de datos que soporta más que un simple Python.

Si usted no necesita los paquetes de datos científicos o todas las cosas que vienen pre-empaquetados con Anaconda, pyenv podría ser una mejor solución ligera para usted. La gestión de versiones de Python es bastante similar en cada uno, sin embargo. Puede instalar versiones de Python de manera similar a pyenv, usando el comando Conda:

$ conda install python=3.7.3

Verás una prolija lista de todos los Conda depende del software se instalará y se le pedirá que confirme.

Conda no tiene una forma de establecer la versión de Python “default” o incluso una buena manera de ver qué versiones de Python que haya instalado. Más bien, depende de la noción de “entornos”, que se puede leer más acerca de las siguientes secciones.

Virtual Environments

Ahora usted sabe cómo manejar múltiples versiones de Python. A menudo, usted estará trabajando en varios proyectos que necesitan la misma versión Python.

Debido a que cada proyecto tiene su propio conjunto de dependencias, es una buena práctica para evitar la mezcla de ellos. Si todas las dependencias se instalan juntos en un único entorno Python, entonces será difícil discernir donde cada uno viene. En el peor de los casos, dos proyectos diferentes pueden depender de dos versiones diferentes de un paquete, pero con Python sólo puede tener una versión de un paquete instalado al mismo tiempo. ¡Que desastre!

Introduzca entornos virtuales . Se puede pensar en un entorno virtual como una copia exacta de una versión de la base de Python. Si ha instalado Python 3.7.3, por ejemplo, entonces puede crear muchos entornos virtuales basa fuera de ella. Cuando se instala un paquete en un entorno virtual, lo hace en forma aislada de otros entornos Python que pueda tener. Cada entorno virtual tiene su propia copia del ejecutable pitón.

Consejo : La mayoría entorno de herramientas virtual proporciona una manera de actualizar el mando de su shell prompt del entorno virtual activa actual. Asegúrese de hacer esto si cambian frecuentemente entre los proyectos de modo que esté seguro de que está trabajando dentro del entorno virtual correcta.

Venv barcos

Venv con versiones de Python 3.3+. Se pueden crear entornos virtuales simplemente pasándolo a un camino en el que almacenar pitón del medio ambiente, los paquetes instalados, y así sucesivamente:

$ python -m venv ~/.virtualenvs/my-env

se activa un entorno virtual a través del outsourcing su guión Activar:

$ source ~/.virtualenvs/my-env/bin/activate

sales del entorno virtual a través de la comando de desactivación, que está disponible cuando se activa el entorno virtual:

(my-env)$ deactivate

Venv se construye en el maravilloso trabajo y éxitos del proyecto virtualenv independiente. virtualenv todavía proporciona algunas características interesantes de su propia, pero Venv es agradable, ya que proporciona la utilidad de los entornos virtuales sin necesidad de instalar ningún software adicional. Es probable que pueda llegar muy lejos con ella si está trabajando sobre todo en una sola versión de Python en su entorno Python.

Si ya la gestión de múltiples versiones de Python (o plan a), entonces podría tener sentido para integrarse con esas herramientas para simplificar el proceso de hacer a nuevos entornos virtuales con versiones específicas de Python. Los pyenv y CONDA ecosistemas proporcionan ambas formas de especificar la versión de Python para usar al crear nuevos entornos virtuales, cubiertos en las siguientes secciones.

pyenv-virtualenv

Si está utilizando pyenv, entonces pyenv-virtualenv realza pyenv con un subcomando para la gestión de entornos virtuales:

// Create virtual environment
$ pyenv virtualenv 3.7.3 my-env

// Activate virtual environment
$ pyenv activate my-env

// Exit virtual environment
(my-env)$ pyenv deactivate

I contextos de conmutación entre un gran puñado de proyectos sobre una base del día a día. Como resultado, tengo al menos una docena de distintos entornos virtuales para gestionar en mi entorno Python. Lo que es realmente bueno de pyenv-virtualenv es que se puede configurar un entorno virtual con el comando local de pyenv y tienen pyenv-virtualenv auto-activar los entornos adecuados a medida que cambia a diferentes directorios:

$ pyenv virtualenv 3.7.3 proj1
$ pyenv virtualenv 3.7.3 proj2
$ cd /Users/dhillard/proj1
$ pyenv local proj1
(proj1)$ cd ../proj2
$ pyenv local proj2
(proj2)$ pyenv versions
system
3.7.3
3.7.3/envs/proj1
3.7.3/envs/proj2
proj1
* proj2 (set by /Users/dhillard/proj2/.python-version)

pyenv y pyenv-virtualenv han proporcionado un particular flujo de trabajo fluido en mi entorno Python.

Conda

usted vio antes que los ambientes trata CONDA, en lugar de las versiones de Python, como el principal método de trabajo. Conda ha incorporado en el apoyo a la gestión de entornos virtuales:

// Create virtual environment
$ conda create --name my-env python=3.7.3

// Activate virtual environment
$ conda activate my-env

// Exit virtual environment
(my-env)$ conda deactivate

Conda instalará la versión especificada de Python si no está ya instalado, por lo que no tiene que correr Conda instalar Python 3.7.3 = primero.

pipenv

pipenv es una herramienta relativamente nueva que busca combinar la gestión de paquetes (más sobre esto en un momento) con la gestión de entornos virtuales. En su mayoría se abstrae la gestión del entorno virtual, la cual puede ser grande, siempre y cuando las cosas van bien:

$ cd /Users/dhillard/myproj

// Create virtual environment
$ pipenv install
Creating a virtualenv for this project…
Pipfile: /Users/dhillard/myproj/Pipfile
Using /patho/pipenv/python3.7 (3.7.3) to create virtualenv…
✔ Successfully created virtual environment!
Virtualenv location: /Users/dhillard/.local/share/virtualenvs/myproj-nAbMEAt0
Creating a Pipfile for this project…
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (a65489)!
Installing dependencies from Pipfile.lock (a65489)…
▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.

// Activate virtual environment (uses a subshell)
$ pipenv shell
Launching subshell in virtual environment…
. /Users/dhillard/.local/share/virtualenvsest-nAbMEAt0/bin/activate

// Exit virtual environment (by exiting subshell)
(myproj-nAbMEAt0)$ exit

pipenv hace todo el trabajo pesado de la creación de un entorno virtual y activándolo para usted. Si se mira con cuidado, se puede ver que también crea un archivo llamado Pipfile. Después de ejecutar por primera vez pipenv instalar, este archivo contiene sólo un par de cosas:

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]

[requires]
python_version = "3.7"

En particular, cabe destacar que se muestra python_version = «3.7». Por defecto, pipenv crea un entorno virtual de Python usando la misma versión de Python se instala bajo. Si desea utilizar una versión diferente de Python, entonces se puede crear el mismo Pipfile antes de ejecutar pipenv instalar y especificar la versión que desea. Si tiene instalado pyenv, entonces pipenv lo utilizará para instalar la versión de Python se especifica si es necesario.

Abstracting gestión entorno virtual es un noble objetivo de pipenv, pero se vuelve colgó con errores difíciles de leer de vez en cuando. Darle una oportunidad, pero no se preocupe si se siente confundido o abrumado por ella. La herramienta, la documentación, y la comunidad crecerá y mejorar su alrededor a medida que madura.

Para obtener una introducción en profundidad a entornos virtuales, asegúrese de leer Python entornos virtuales: Una cartilla.

paquete de gestión

Para muchos de los proyectos en los que trabaja, es probable que tengas un número de paquetes de terceros. Estos paquetes pueden tener sus propias dependencias a su vez. En los primeros días de Python, utilizando paquetes involucrados descargar manualmente los archivos de Python y apuntando hacia ellos. Hoy en día, tenemos la suerte de tener una variedad de herramientas de gestión de paquetes disponibles para nosotros.

La mayoría de los gestores de paquetes trabajan en conjunto con los entornos virtuales, el aislamiento de los paquetes se instalan en un entorno de Python de otro. Usando los dos juntos es donde realmente comienza a ver el poder de las herramientas disponibles para usted.

pip

p i p ( p i p i nstalls p ackages) ha sido el estándar de facto para gestión ackage p i n Python desde hace varios años. Fue Heav i Ly i ns p i rojo por un conde i herramienta er llamado easy_ i nstall. Python i ncor p corporado p i p i nto d norma i str i pero i en el arranque i ng i n vers i en 3.4. p i p automatiza el proceso en que el p de descarga i ng p ackages y MAK i ng Python consciente de ellos.

Si usted tiene múltiples entornos virtuales, a continuación, se puede ver que están aislados mediante la instalación de algunos paquetes en uno:

$ pyenv virtualenv 3.7.3 proj1
$ pyenv activate proj1
(proj1)$ pip list
Package Version
---------- ---------
pip 19.1.1
setuptools 40.8.0

(proj1)$ python -m pip install requests
Collecting requests
Downloading .../requests-2.22.0-py2.py3-none-any.whl (57kB)
100% |████████████████████████████████| 61kB 2.2MB/s
Collecting chardet<3.1.0,>=3.0.2 (from requests)
Downloading .../chardet-3.0.4-py2.py3-none-any.whl (133kB)
100% |████████████████████████████████| 143kB 1.7MB/s
Collecting certifi>=2017.4.17 (from requests)
Downloading .../certifi-2019.6.16-py2.py3-none-any.whl (157kB)
100% |████████████████████████████████| 163kB 6.0MB/s
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests)
Downloading .../urllib3-1.25.3-py2.py3-none-any.whl (150kB)
100% |████████████████████████████████| 153kB 1.7MB/s
Collecting idna<2.9,>=2.5 (from requests)
Downloading .../idna-2.8-py2.py3-none-any.whl (58kB)
100% |████████████████████████████████| 61kB 26.6MB/s
Installing collected packages: chardet, certifi, urllib3, idna, requests
Successfully installed packages

$ pip list
Package Version
---------- ---------
certifi 2019.6.16
chardet 3.0.4
idna 2.8
pip 19.1.1
requests 2.22.0
setuptools 40.8.0
urllib3 1.25.3

pip solicitudes instalados, junto con varios paquetes de los que depende. Lista de pepita muestra todos los paquetes actualmente instalados y sus versiones.

Advertencia : Puede desinstalar paquetes mediante solicitudes de desinstalación de pepita, por ejemplo, pero esto sólo desinstalación peticiones -no cualquiera de sus dependencias.

Una forma común para especificar las dependencias del proyecto de pip es con un archivo requirements.txt. Cada línea en el archivo especifica un nombre de paquete y, opcionalmente, la versión para instalar:

scipy==1.3.0
requests==2.22.0

A continuación, puede ejecutar python -m pip instalar requirements.txt -r para instalar todas las dependencias especificadas a la vez. Para más información sobre PIP, consulte ¿Qué es la pipa? Una guía para Nueva Pythonistas.

pipenv

pipenv tiene la mayor parte de las mismas operaciones básicas como PIP, pero piensa en paquetes de forma un poco diferente. Recuerde que el Pipfile que pipenv crea? Al instalar un paquete, pipenv añade que el paquete de Pipfile y también añade información más detallada a un nuevo archivo de bloqueo llama Pipfile.lock. archivos de bloqueo actúan como una instantánea del conjunto preciso de los paquetes instalados, incluyendo dependencias directas, así como sus sub-dependencias.

Se puede ver pipenv la clasificación de la gestión de paquetes al instalar un paquete:

$ pipenv install requests
Installing requests…
Adding requests to Pipfile's [packages]…
✔ Installation Succeeded
Pipfile.lock (444a6d) out of date, updating to (a65489)…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
✔ Success!
Updated Pipfile.lock (444a6d)!
Installing dependencies from Pipfile.lock (444a6d)…
▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 5/5 — 00:00:00

pipenv utilizará este archivo de bloqueo, si está presente, para instalar el mismo conjunto de paquetes. Puede asegurarse de que siempre tiene el mismo conjunto de dependencias que trabajan en cualquier entorno de Python que se crea mediante este enfoque.

pipenv también distingue entre el desarrollo dependencias y producción (regular) dependencias. Es posible que tenga algunas herramientas durante el desarrollo, tales como negro o flake8, que no es necesario cuando se ejecuta la aplicación en la producción. Puede especificar que un paquete es para el desarrollo cuando se instala: instalar

$ pipenv install --dev flake8
Installing flake8…
Adding flake8 to Pipfile's [dev-packages]…
✔ Installation Succeeded
...

pipenv (sin argumentos) sólo va a instalar los paquetes de producción de forma predeterminada, pero se puede decir que al instalar las dependencias de desarrollo, así como con pipenv instalar –dev .

poesía

poesía aborda facetas adicionales de gestión de paquetes, incluyendo crear y publicar sus propios paquetes. Después de instalar la poesía, que se puede utilizar para crear un nuevo proyecto:

$ poetry new myproj
Created package myproj in myproj
$ ls myproj/
README.rst myproj pyproject.toml tests

De manera similar a la forma en pipenv crea la Pipfile, la poesía crea un archivo pyproject.toml. Esta norma reciente contiene metadatos acerca del proyecto, así como versiones de dependencia:

[tool.poetry]
name = "myproj"
version = "0.1.0"
description = ""
authors = ["Dane Hillard "]

[tool.poetry.dependencies]
python = "^3.7"

[tool.poetry.dev-dependencies]
pytest = "^3.0"

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"

Puede instalar paquetes con la poesía para sumar (o como dependencias de desarrollo con –dev poesía ADD):

$ poetry add requests
Using version ^2.22 for requests

Updating dependencies
Resolving dependencies... (0.2s)

Writing lock file

Package operations: 5 installs, 0 updates, 0 removals

- Installing certifi (2019.6.16)
- Installing chardet (3.0.4)
- Installing idna (2.8)
- Installing urllib3 (1.25.3)
- Installing requests (2.22.0)

poesía también mantiene un archivo de bloqueo, y tiene una ventaja sobre pipenv, ya que mantiene un registro de los bultos que subdependencies. Como resultado, puede desinstalar solicitudes y sus dependencias con las solicitudes poesía eliminar.

Conda

Con Conda, se puede utilizar para instalar los paquetes de pepita como de costumbre, pero también se puede utilizar Conda de instalación para instalar los paquetes de diferentes canales , que son colecciones de paquetes proporcionados por Anaconda u otros proveedores. Para instalar las peticiones del canal de Conda-forja, puede ejecutar Conda instalar solicitudes Conda-Forge -c.

Más información sobre la gestión de paquetes en Conda en Configuración de Python para aprendizaje automático en Windows.

Python Intérpretes

Si usted está interesado en una mayor personalización de su entorno de Python, se puede elegir la experiencia de línea de comandos que tiene en la interacción con Python. El intérprete de Python proporciona una read-eval-print bucle (REPL), que es lo que aparece cuando se escribe python sin argumentos en su shell:

Python 3.7.3 (default, Jun 17 2019, 14:09:05)
[Clang 10.0.1 (clang-1001.0.46.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 2 + 2
4
>>> exit()

el REPL lee lo que escribe, evalúa como código Python, y imprime el resultado. Entonces se espera que hacer todo de nuevo. Esto es casi lo mismo que el valor predeterminado Python REPL proporciona, que es suficiente para una parte buena de trabajo típico.

IPython

Como Anaconda, IPython es un conjunto de herramientas de apoyo más que Python, pero una de sus características principales es una alternativa REPL Python. REPL números de IPython cada comando y explícitamente las etiquetas de entrada y de salida de cada comando. Después de instalar IPython (python -m pip instalar ipython), puede ejecutar el comando ipython en lugar del comando python utilizar el IPython REPL:

Python 3.7.3
Type 'copyright', 'credits' or 'license' for more information
IPython 6.0.0.dev -- An enhanced Interactive Python. Type '?' for help.

In [1]: 2 + 2
Out[1]: 4

In [2]: print("Hello!")
Out[2]: Hello!

IPython también es compatible con la terminación Tab, más potentes funciones de ayuda, y la integración fuerte con otras herramientas tales como matplotlib para graficar. IPython sentó las bases para Jupyter, y ambos se han usado ampliamente en la comunidad científica de datos debido a su integración con otras herramientas.

El IPython REPL es altamente configurable también, lo que si bien cae apenas por debajo de ser un entorno de desarrollo completo, todavía puede ser una gran ayuda para su productividad. Su base de comandos y mágicos personalizables merece la pena visitar.

bpython

bpython es otro REPL alternativa que proporciona resaltado de sintaxis en línea, la implementación del tabulador, e incluso auto-sugerencias a medida que escribe. Proporciona un buen número de los beneficios rápidos de IPython sin alterar la interfaz mucho. Sin el peso de las integraciones y así sucesivamente, bpython podría ser bueno para agregar a su repertorio durante un tiempo para ver cómo mejora su uso del REPL.

editores de texto

Usted pasa un tercio de su vida durmiendo, así que tiene sentido invertir en una gran cama. Como desarrollador, que gasta una gran cantidad de su tiempo leyendo y escribiendo código, por lo que se deduce que se debe invertir tiempo en la creación de editor de texto de su entorno Python de la manera que se le parezca.

Cada editor ofrece un conjunto diferente de las asociaciones de teclas y el modelo para la manipulación de texto. Algunos requieren un ratón para interactuar con ellos de manera eficaz, mientras que otros pueden ser controlados con sólo el teclado. Algunas personas consideran que la elección de su editor de texto y personalizaciones algunas de las mayoría de las decisiones personales que hacen!

Hay tantas opciones para elegir en este campo, por lo que no voy a tratar de cubrir en detalle aquí. Echa un vistazo a IDE de Python y Editores de código (Guía) para obtener una visión amplia. Una buena estrategia es encontrar una forma simple, pequeño editor de texto para los cambios rápidos y un IDE completo para el trabajo más complicado. Vim y PyCharm, respectivamente, son mis editores de elección. Consejos y trucos

Una vez que haya realizado las grandes decisiones sobre su entorno Python Medio Ambiente

Python, el resto del camino está pavimentado con pequeños ajustes para hacer su vida un poco más fácil. Estos ajustes U Ahorra minutos o segundos solos, pero colectivamente ahorrar horas de tiempo.

Hacer una determinada actividad más fácil reduce su carga cognitiva para que pueda centrarse en la tarea a mano en lugar de la logística que lo rodean. Si usted nota que la realización de una acción una y otra vez, y luego considerar la automatización de la misma. Utilice esta maravillosa carta de xkcd para determinar si vale la pena la automatización de una tarea en particular.

Aquí hay algunos consejos finales.

sabe que su entorno virtual actual

Como se mencionó anteriormente, es una gran idea para mostrar la versión de Python activo o entorno virtual en el símbolo del sistema. La mayoría de las herramientas van a hacer esto para usted, pero si no (o si desea personalizar el símbolo), el valor es por lo general contenida en la variable de entorno VIRTUAL_ENV.

Deshabilitar innecesarios, archivos temporales

¿Usted ha notado * .pyc archivos de todo sus directorios del proyecto? Estos archivos se pre-compilados bytecode de Python-ayudan Python inicia su solicitud más rápidamente. En la producción, estos son una gran idea porque te dan una ganancia de rendimiento. Durante el desarrollo local, sin embargo, rara vez son útiles. Conjunto PYTHONDONTWRITEBYTECODE = 1 para desactivar este comportamiento. Si encuentra casos de uso para ellos más adelante, entonces se puede eliminar fácilmente esta información de su entorno Python.

Personalizar el intérprete de Python

Usted puede afectar la forma se comporta el REPL utilizando un archivo de inicio . Python leer el archivo de esta inicio y ejecutar el código que contiene antes de entrar en el REPL. Establecer la variable de entorno PYTHONSTARTUP a la ruta del archivo de su puesta en marcha . (A ~ / .pystartup de la mina.) Si desea golpear hasta la historia de comandos y Tab para la terminación como su shell proporciona, a continuación, dar este archivo inicio intentarlo.

Conclusión

Ha aprendido a muchas facetas del entorno típico de Python. Armed with this knowledge, you can:

  • Choose a terminal with the aesthetics and enhanced features you like
  • Choose a shell with as many (or as few) customization options as you need
  • Manage multiple versions of Python on your system
  • Manage multiple projects that use a single version of Python, using virtual Python environments
  • Install packages in your virtual environments
  • Choose a REPL that suits your interactive coding needs

When you’ve got your Python environment just so, I hope you’ll share screenshots, screencasts, or blog posts about your perfect setup ✨

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *