Red de conocimiento informático - Material del sitio web - Cómo empezar a usar PyCharm y tener un IDE de Python eficiente

Cómo empezar a usar PyCharm y tener un IDE de Python eficiente

El debate entre el editor y el entorno de desarrollo integrado se ha vuelto viejo y aburrido porque es un juego de suma cero (entonces otras partes deben perder algo). He estado usando Emacs durante 15 años y lo uso para leer correos electrónicos, navegar por la web y preparar café (¿no podemos hacer un poco de todo?) Pero hoy me di cuenta de que al usar las herramientas adecuadas, Puedo ser más productivo.

Los editores potentes como Emacs y Vim son geniales. Me parece desconcertante que algunos editores o IDE sean torpes cuando se trata de operaciones básicas como buscar y reemplazar, mientras que Vim y Emacs lo hacen bien.

Sin embargo, la búsqueda de "Vim como IDE de Python" o "Emacs como IDE de Python" devuelve miles de enlaces, lo que indica que la gente quiere cosas como finalización inteligente, navegación de código, soporte de proyectos, etc. Para darles algunos datos, uno de mis artículos más populares, aunque ya han pasado tres años, es cómo configurar Emacs como un IDE de Python.

PyCharm es uno de los IDE de Python más populares debido a sus potentes funciones. En este artículo, explicaré cómo comenzar con PyCharm y tener rápidamente un entorno de desarrollo Python productivo. Estoy usando PyCharm 3.0.2 Pro en Mac (también tienen una versión de código abierto). Estoy usando un mapa de teclas muy modificado para las teclas predeterminadas (también hay mapas de teclas para Emacs y Vim). Le sugiero que consulte las teclas de acceso directo predeterminadas oficiales para Mac y Windows/Linux.

Uso por primera vez

Cuando inicie PyCharm por primera vez, le preguntará qué distribución de teclado y tema desea utilizar. No me gustó su mapa de teclas de Emacs, así que utilicé el mapa de teclas predeterminado de Mac OS X y personalicé los atajos que quería:

Si es la primera vez que usas PyCharm, no hay muchas configuraciones que puedas realizar. importado. Es posible que tengas que hacer clic en "Configurar" en la pantalla de bienvenida para establecer algunas configuraciones básicas:

Me gusta mostrar números de línea y separadores de métodos (Editor → Apariencia → Mostrar separadores de métodos, Mostrar números de línea):

Además, me gusta el tema Solarized. Seguí las instrucciones para instalarlo y lo seleccioné como tema predeterminado para Editor → Colores y fuentes. La versión ligera de Solarized IntelliJ tenía algunas opciones de color extrañas (por ejemplo, usaba gris para el texto predeterminado en lugar del negro más limpio), así que hice una modificación en Editor → Colores y fuentes → General.

En comparación con otros entornos de desarrollo integrados, creo que PyCharm es muy limpio visualmente. Si desea una interfaz de usuario más limpia, puede ocultar la barra de herramientas, los botones de herramientas, la barra de navegación y la barra de estado (en el menú Ver):

Virtualenv y el intérprete de Python

Usted Puede crear un nuevo proyecto usando Archivo → Archivo → Nuevo proyecto, o abrir un proyecto existente usando Archivo → Abrir directorio. PyCharm admite múltiples tipos de proyectos de Python, como Django. PyCharm admite múltiples tipos de proyectos de Python, como Django, Flask, etc. Aquí crearé un proyecto simple para probar la biblioteca pyquery (seleccionaré "Proyecto vacío").

Debe indicarle a PyCharm qué intérprete de Python desea usar, ya que puede usar diferentes intérpretes para diferentes proyectos. Utilizará esta información para indexar todas las bibliotecas disponibles. Una buena práctica es crear un entorno virtual para cada proyecto. Puede utilizar un virtualenv existente o crear un nuevo virtualenv desde PyCharm (Configuración → Intérprete del proyecto → Intérprete de Python).

Para este proyecto crearé un nuevo virtualenv y lo pondré a disposición de todos:

Puedes buscar rápidamente, leer las instrucciones e instalar el paquete desde PyCharm. No hay nada que no puedas hacer en la terminal, pero facilita la búsqueda de paquetes sin salir del IDE.

La instalación de algunos paquetes puede llevar algún tiempo, especialmente si se requiere compilación. PyCharm ejecuta el proceso de instalación en segundo plano y puede hacer clic en la barra de estado para ver el estado de la instalación:

Como podemos ver, no solo instala pyquery, sino que también instala paquetes dependientes como lxml ( como esperábamos):

p>

Teclas de acceso directo

PyCharm no tiene Vim, pero puedes hacer muchas cosas simplemente usando el teclado. Modifiqué bastante el mapa de teclas predeterminado porque me gusta usar atajos como Control-a, Control-e, Control-k y Control-y, que de forma predeterminada son principalmente para cuadros de texto sin configurar "El mapa de teclas predeterminado en Mac OS X". . También puede definir atajos del mouse. Por ejemplo, uso Opción-Clic para cambiar un documento rápido. Si es usuario de Vim, también puede probar el complemento del emulador de Vim, IdeaVim. He oído cosas maravillosas sobre él, pero aún no he tenido la oportunidad de probarlo.

Estoy usando la distribución del teclado Dvorak, pero, de manera molesta, falla cada vez que uso las teclas de método abreviado incorrectas. Esto significa que tengo que volver a vincular muchas teclas de método abreviado para evitar este problema.

PyCharm utiliza teclas de función como F1 y F2. Quizás sepas que en Mac, la tecla superior se usa como tecla "Multimedia" predeterminada y se activa presionando la tecla Fn. Podemos cambiarlo en Preferencias del Sistema → Teclado.

Quiero poder controlar el volumen y cambiar el brillo sin tener que usar la tecla Fn, pero también quiero poder usar las teclas de función sin tener que tocar la tecla Fn más lejos (yo Soy vago, ¿cómo puedo decirlo?) También me gusta usar las teclas de función en lugar de tener que tocar la tecla Fn lejana (Soy vago, ¿qué más puedo decir?) Utilizo Palua para cambiar entre "multimedia" y teclas de función. Puede usar teclas globales para cambiar, o puede configurar Palua para que cambie automáticamente cuando use aplicaciones específicas. Utilizo teclas multimedia (predeterminadas) en todas las aplicaciones y configuré Palua para usar teclas de función en Xcode y PyCharm.

Editores externos

PyCharm puede iniciar cualquier herramienta externa, así que lo configuré para usar Emacs para abrir el archivo actual. Esto es útil cuando desea realizar ediciones rápidas utilizando su editor favorito (Emacs, Vim, TextMate, etc.).

Vaya a Configuración → Herramientas externas, asegúrese de que "Abrir consola" no esté marcado, luego inserte la ruta del programa, los parámetros (en este caso podemos usar FilePath para obtener el nombre completo del archivo) y el directorio de trabajo ( ProjectFileDir/FileRelativeDir/).

Puedes asignarlo como acceso directo:

Ahora está disponible desde la barra de menú.

Ejecución de código y REPL

PyCharm nos proporciona una variedad de formas de ejecutar código.

Resultado de impresión

Usar la impresión para mostrar valores es una técnica útil y ampliamente utilizada, pero si no se tiene cuidado, puede generar código desordenado.

Si hemos seleccionado un archivo para ejecutar, podemos iniciarlo pulsando el botón Reproducir o Control-R.

Si no se selecciona ningún archivo para ejecutar, se seleccionará un archivo del menú contextual y se ejecutará mediante Control-Opción-R o clic derecho. PyCharm recordará su selección y podrá continuar usando Control-R la próxima vez. Esto suena complicado, pero en realidad es muy simple. Consulta el manual para más información.

Consola y REPL

Mi forma favorita de ejecutar código es en REPL. Puede abrir la consola Python en la barra de herramientas de PyCharm "Herramientas → Ejecutar consola Python" (le asigné Control-C). Utilizará IPython si está disponible (le recomiendo que instale IPython en un entorno virtual) y agregue la ruta al archivo actual a la ruta de Python. En la consola puedes importar las funciones que quieras utilizar y ejecutarlas como de costumbre.

Aún se puede hacer en la consola:

Podemos usar las funciones importadas normalmente como de costumbre y podemos alternar fácilmente la visibilidad de la consola usando ? -4.

Ejecutar el código seleccionado en la consola

Si el código que quiero ejecutar solo tiene unas pocas líneas adicionales y no se escriben pruebas unitarias formales (por ejemplo, podría estar procesando datos ) y puedo guardarlo en un archivo temporal. Podemos seleccionar el código que queremos ejecutar (normalmente solo uso ? -A para seleccionar el archivo completo) y seleccionar "Ejecutar selección en consola" en el menú contextual (o mejor aún, usar el atajo de teclado). [Para acortar el artículo, omití capturas de pantalla de algunos elementos del menú.

En el siguiente ejemplo, la variable de título está disponible en la consola porque seleccionamos todo el archivo temporal para su ejecución en la consola:

Macro

Si Sería genial si pudiéramos enviar el archivo completo a la consola en una sola operación. Afortunadamente, podemos grabar una macro. Elija Seleccionar Editar → Macros → Iniciar grabación de macro, luego realice las acciones anteriores (seleccione el archivo completo, envíelo a la consola, cambie a la consola). Como puedes ver, mi macro solo tiene cuatro acciones (presioné la tecla de flecha hacia abajo para anular la selección):

Cuando grabas una macro que ya está en el menú de macros, puedes asignarle un acceso directo (yo use Control-C Control-E, pero por alguna razón PyCharm solo muestra la mitad de los dos atajos).

Depuración

A muchas personas les gusta usar un depurador para examinar datos. Aunque prefiero usar REPL, a veces un depurador es más eficiente, especialmente cuando se inspeccionan objetos complejos. PyCharm no permite establecer puntos de interrupción en líneas vacías, por lo que en este breve ejemplo tuve que agregar una línea adicional (usé la función de impresión, pero también puedes usar pasar) porque quería que la depuración se detuviera después de configurar la variable de título. En código real, esto rara vez es necesario.

IPyhton

Finalmente, no hay nada de malo en usar IPython para ejecutar una terminal externa y usar funciones como ejecutar y recarga automática.

Buscar comandos

Con tantos comandos, es fácil sentirse abrumado. Si está utilizando PyCharm en una Mac, puede usar Ayuda → Buscar como de costumbre, o la acción Ayuda → Buscar en cualquier plataforma. Le permite buscar cualquier comando de PyCharm, incluidos aquellos que no puede obtener en el menú. (Los usuarios de Emacs notarán que esto es algo similar al M-X de Emacs). Esta es una característica muy útil y poderosa que uso todo el tiempo.

Autocompletar código

La función de autocompletar de código de PyCharm es de primer nivel. De forma predeterminada, PyCharm hace sugerencias a medida que escribe código:

Dado que esta función puede consumir un poco de energía, puede desactivarla seleccionando Archivo → Modo de ahorro de energía. Aún puedes usar esta función explícitamente a través de Control-Espacio.

A medida que escribe, puede limitar la lista de sugerencias escribiendo una subcadena:

Alternativamente, puede escribir la primera letra de CammelCaseClasses o function_names_with_underscores:

Si escribe Ctrl-Espacio una vez.

Si vuelves a escribir Ctrl-Espacio, PyCharm intentará enumerar los elementos más relevantes:

Si vuelves a escribir Ctrl-Espacio, enumerará los que conoce Todos los nombres . Esto puede resultar abrumador, pero tenga en cuenta que enumera la función nombre_de_madre en el archivo bar.py, que no se importa.

Sin embargo, normalmente sólo querrás completar el nombre de la variable local en el búfer abierto. Fue posible hacer esto en Emacs y Vim hace mucho tiempo, y ahora también es posible en PyCharm. El manual lo llama Hippie Completion, pero el nombre real del comando (el que se encuentra en la operación de búsqueda) es "Cyclic Expand Word", y en mis pruebas incluso funcionó con cadenas de documentos.

Es posible que el autocompletado de código no funcione en algunos casos, como cuando la biblioteca no tiene sugerencias de tipo. Esta página de StackOverflow sugiere establecer puntos de interrupción en el PDB y enumerar todas las propiedades posibles con dir. Una solución similar es crear un punto de interrupción en PyCharm y ejecutar la expresión haciendo clic en el último icono en la barra de herramientas de depuración (o usando el método abreviado de teclado correspondiente). En este caso, la expresión que evalúo es "dir(r)".

Acceso a la documentación

PyCharm tiene tres formas de acceder a la documentación: definición rápida, documentación rápida, documentación externa e información de parámetros. Puede acceder a ellos a través del menú Ver o sus respectivos accesos directos.

Definición rápida le mostrará la definición completa (¡claro!) del símbolo (clase, método, función, etc.) y, por supuesto, la documentación. Esto es útil si sólo desea ver rápidamente una definición y saltar a ella.

Documentación Rápida mostrará la documentación y la firma del símbolo.

Finalmente, la documentación externa y la información de parámetros son muy simples. La primera opción abre el documento en el navegador predeterminado y la segunda opción proporciona información de parámetros para una función o método (útil para encontrar rápidamente los nombres de argumentos de palabras clave, por ejemplo).

La documentación externa está disponible fuera de Python (por supuesto), PyQt4, PySide, GTK, WX, numpy, SciPy y kivy, puede agregar la ruta a la documentación externa, la ruta se establece en Configuración → Documentación externa de Python.

Calidad del código

A medida que escribe su código, PyCharm verifica si su código cumple con los estándares PEP8. También le indicará si no está utilizando PEP8. Si lo desea, puede configurar PyCharm para ejecutar pylint como una herramienta externa.

Encuentra tu camino a través del código fuente

PyCharm se vuelve poderoso una vez que dominas los comandos de navegación. Puede saltar a clases, funciones, etc. En Mac, puede usar ? -B o ? -Click para saltar a definiciones de clases, métodos, funciones y variables, tal como puede usar Ctrl-B o Ctrl-Click en Windows y Linux.

El mecanismo para navegar a una clase, archivo o símbolo es casi el mismo. Cuando escribe una cadena, verá un cuadro de diálogo que incluye proyectos distintos del proyecto actual, así como los resultados del filtro de coincidencia de ciudades. Vaya al menú de navegación o utilice el método abreviado de teclado correspondiente:

Este es un cuadro de diálogo típico de definición de clase:

Puede ingresar parte del nombre, incluida la extensión del archivo. Por ejemplo, si desea abrir un archivo JavaScript en un proyecto Django pero no recuerda su nombre, puede buscar ".js".

Estas características nos permiten navegar rápidamente por el código fuente. Digamos que estamos viendo el código fuente de Django y queremos entender cómo se implementa una característica. No conocemos su definición, así que vamos a Navegación → Símbolo (? -? -O), escribimos "renderizar" y seleccionamos la primera opción (podemos ver su definición en django.shortcuts). Si ocultamos la barra de navegación, podemos usar Navegación → Saltar a la barra de navegación (? - ↑) para mostrar rápidamente la barra de navegación y ver la ubicación del archivo (django → django → shorts.py):

A veces, completar código es más eficiente después de eliminar partes del texto que no le interesan. En el siguiente ejemplo, después de eliminar el JavaScript relevante, obtuve una lista más limpia:

PyCharm te permite contraer bloques como clases, métodos y funciones, pero también puedes crear tu propia área contraíble. Esto es útil al agrupar algo (clases, métodos, funciones, etc.). Estos módulos plegables nos permiten centrarnos en áreas específicas de nuestro código. Todas las regiones en el archivo de lista se pueden mostrar navegando → Personalizar regiones o usando los atajos de teclado correspondientes. Lamentablemente, no podemos enumerar todas las áreas del proyecto.

Pruebas unitarias

Antes de ejecutar los archivos de prueba, debemos agregar una nueva configuración de ejecución/depuración. Vamos a Ejecutar → Editar configuración y hacemos clic en el botón más en la esquina superior izquierda. Luego seleccione "Pruebas de Python" para comenzar a probar. En este caso, usaré pruebas unitarias:

Finalmente, necesitamos agregar carpetas para estas pruebas y seleccionar el intérprete de Python correcto:

Ahora, tal como ejecutamos Igual que el código, podemos ejecutar la prueba: haga clic en la barra de herramientas o seleccione Ejecutar → Ejecutar (Control-?) Esto abrirá un cuadro de diálogo donde puede seleccionar el código a ejecutar (también puede ejecutar otros códigos). Puede ejecutar todas las pruebas o solo el cursor de prueba.

Cuando ejecutas una prueba, PyCharm recuerda tu última selección para que puedas repetir la prueba usando Control-R. Esto es útil si resuelve una situación de prueba específica y desea ejecutarla varias veces, pero no las otras pruebas. No necesita encontrar el archivo de prueba para ejecutar; puede ejecutar pruebas desde cualquier archivo. Puede completar la prueba del código seleccionando Navegación → Prueba (o la tecla de acceso rápido correspondiente).

Manejo de múltiples archivos

Como puede ver, PyCharm usa una pestaña para cada archivo. Para cambiar a una pestaña, podemos usar el comando SelectNextTab o SelectPreviousTab. Los atajos predeterminados son Control-→ y Control-←, pero OS X usa esas dos teclas, así que déjame volver a vincularlas como Control-?-N y Control-?-P (en Terminal, uso las mismas teclas de atajo para cambiar de pestaña). ).

Una forma más directa de seleccionar una pestaña es usar Navegación → Archivos, o Ver → Archivos recientes (? -E) y Ver → Archivos modificados recientemente (? -? -E). Los dos últimos comandos mostrarán archivos y puede limitar la selección ingresando subcadenas.

En el siguiente ejemplo, puedo ver las pestañas en el archivo scratch.py ​​simplemente escribiendo "? -E", "S" y "ENTER":

Varias ventanas

PyCharm admite múltiples ventanas. Aunque no es tan bueno como Emacs, es lo suficientemente bueno.

De forma predeterminada, PyCharm no especifica atajos para manejar ventanas divididas, por lo que deberá hacerlo usted mismo. Estos son los atajos que uso:

Dividir verticalmente, Control-S

Dividir horizontalmente, Control-H

No dividir, Control-C Control-U

Todo no dividido, Control-C Control-A

Ir al siguiente divisor. Control -C Control -N

Ir al delimitador anterior, Control -C Control -P

Mover al grupo relativo, Control -C Control -M

Con dos paneles más, arrastrar pestañas es más fácil.

Resumen

PyCharm puede hacer muchas cosas por nosotros. Vimos cómo usar virtualenv, definir accesos directos, usar editores externos, ejecutar código, definir macros, buscar comandos para completar código de manera eficiente, acceder a documentación, explorar el código fuente, ejecutar pruebas unitarias y trabajar con múltiples archivos y ventanas divididas.

Y estos son sólo fenómenos superficiales. No hemos hablado de edición, control de versiones, complementos, depuración (local y remota), creación de plantillas, uso de TextMate incluido, desarrollo web y más.

Te recomiendo que consultes la documentación oficial de PyCharm, incluida la guía de inicio rápido y la ayuda en línea. Además, Andrew Brookins escribió una excelente reseña de PyCharm desde la perspectiva de un usuario de Vim. Te recomiendo que leas este artículo incluso si no usas Vim.