python - professional - PyCharm muestra un error de referencias no resueltas para un código válido
pycharm tutorial (17)
¿Estás usando virtualenv?
si es así, debe notificar a PyCharm para cada cambio en la ubicación del python.exe deseado (simplemente ./activate no es suficiente para PyCharm)
Asegúrese de que Pycharm apunta al interpetor y los paquetes correctos: Archivo -> Configuración -> Proyecto -> Intérprete del proyecto. Haga clic en el engranaje y elija python.exe en la carpeta Scripts de virtualenv
Estoy usando PyCharm para trabajar en un proyecto. El proyecto se abre y configura con un intérprete, y puede ejecutarse con éxito. Las rutas del intérprete remoto se asignan correctamente. Esta parece ser la configuración correcta, pero PyCharm está resaltando mi código válido con errores de "referencia no resuelta", incluso para las funciones incorporadas de Python. ¿Por qué no parece que se detectan, a pesar de que el código se ejecuta? ¿Hay alguna manera de hacer que PyCharm los reconozca correctamente?
Esta instancia específica del problema es con un intérprete remoto, pero el problema aparece también en los intérpretes locales.
Archivo | Invalidar los cachés ... y reiniciar PyCharm ayuda.
Cerré todos los otros proyectos y ejecuté el proyecto requerido de forma aislada en Pycharm. Creé un virtualenv separado de pycharm y agregué todos los módulos necesarios usando pip. Agregué este entorno virtual en el intérprete del proyecto. Esto solucionó mi problema.
Disculpe por hacer esta pregunta, sin embargo, tengo una actualización importante que hacer.
Es posible que también desee revertir el intérprete de su proyecto a Python 2.7.6 si está usando una versión diferente. Esto me funcionó en mi instalación de PyCharm 4.04 de Ubuntu profesional, ya que ninguna de las otras recomendaciones resolvió mi problema.
En mi caso fue la estructura de directorios. Mi proyecto se ve así:
+---dir_A
+---dir_B
+app
|
/-run.py
Así que haga clic derecho en dir_b> "marcar directorio como"> "raíz del proyecto"
En mi caso, el error de inspección aparece debido a un caso muy específico de código python. Una función mínima que contiene dos funciones numpy y dos accesos de lista hace que la inspección de mi código genere este tipo de errores.
La eliminación de la línea ''d = 0'' en el siguiente ejemplo produce un error de referencia no resuelto como se esperaba, pero la lectura no hace que el error desaparezca para el inspector de códigos. Todavía puedo ejecutar el código sin problemas después.
import numpy as np
def strange(S, T, U, V):
d = 0
print min(np.abs(S[d]), np.abs(T[d]), U[d], V[d])
Borrar las cachés y volver a cargar la lista de rutas no funciona. Solo la modificación del código con uno de los siguientes parches de ejemplo funciona:
- Otro ordenamiento de los parámetros ''min'': esquemáticamente SUTV pero no STUV o TSUV
- Uso de un método en lugar de la función: S [d] .abs () en lugar de np.abs (S [d])
- Usando la función abs () incorporada
- Agregar un número a un parámetro de elección: U [d] + 0.
Finalmente conseguí este trabajo después de que ninguna de las soluciones propuestas funcionara para mí. Estaba jugando con un proyecto de django rest framework y estaba usando un virtualenv que tenía configurado. Pude arreglar Pycharm marcando la carpeta raíz como la raíz de las fuentes, pero luego el servidor de django generaría excepciones de resolución. Entonces uno trabajaría cuando el otro no, y viceversa.
Finalmente, solo tuve que marcar la subcarpeta como la raíz de las fuentes en pycharm. Así que mi estructura era así.
-playground
-env
-playground
Esa segunda carpeta del patio de recreo es la que tuve que marcar como raíz de las fuentes para que todo funcione como se espera. Eso no presentaba ningún problema para mi escenario, por lo que era una solución viable.
Solo pensé que lo compartiría en caso de que alguien más pueda usarlo.
Hay muchas soluciones para esto, algunas más convenientes que otras, y no siempre funcionan.
Aquí está todo lo que puede intentar, pasando de ''rápido'' a ''molesto'':
- Do
File
->Invalidate Caches / Restart
y reinicia PyCharm.- También puede hacer esto después de cualquiera de los siguientes métodos, solo para estar seguro.
- Primero, verifique qué intérprete está ejecutando:
Run
->Edit Configurations
->Configuration
->Python Interpreter
. - Actualice los caminos de su intérprete:
-
File
->Settings
-
Project: [name]
->Project Interpreter
-> ''intérprete del proyecto'': icono de engranaje ->More...
- Haga clic en el botón ''Mostrar rutas'' (en la parte inferior)
- Haga clic en el botón ''Actualizar'' (en la parte inferior)
-
- Retire el intérprete y vuelva a agregarlo:
-
File
->Settings
-
Project: [name]
->Project Interpreter
-> ''intérprete del proyecto'': icono de engranaje ->More...
- Haga clic en el botón ''Eliminar''
- Haga clic en el botón ''Agregar'' y vuelva a agregar su interpeter
-
- Borra tus preferencias de proyecto
- Elimina la carpeta
.idea
tu proyecto - Cerrar y volver a abrir PyCharm
- Abre tu proyecto desde cero
- Elimina la carpeta
- Elimine sus preferencias de usuario de PyCharm (pero haga una copia de seguridad primero).
-
~/.PyCharm50
en Mac -
%homepath%/.PyCharm50
en Windows
-
- Cambie a otro intérprete, luego vuelva al que desee.
- Cambie a otro intérprete, no vuelva atrás.
La respuesta de Dmitry no funcionó para mí.
Conseguí el mío trabajando en Project Intérpretes, seleccionando la pestaña "Rutas" y presionando el botón de actualización en ese submenú. Se rellena automáticamente con algo llamado "esqueletos de pitón".
edición : captura de pantalla usando PyCharm 3.4.1 (está bastante bien oculto)
Me encuentro eliminando y volviendo a agregar el intérprete remoto para solucionar este problema cuando la invalidación de cachés o la actualización de rutas no funciona.
Uso vagrant y de vez en cuando si agrego una nueva VM a mi configuración multi-vm, el puerto reenviado cambia y esto parece confundir a PyCharm cuando intenta usar el puerto incorrecto para SSH. Cambiar el puerto no parece ayudar a las referencias rotas.
Ninguna de las soluciones anteriores funcionó para mí!
Si está utilizando un entorno virtual para su proyecto, asegúrese de aplicar el archivo python.exe
que se encuentra dentro del directorio de su entorno virtual como intérprete para el proyecto (Alt + Ctrl + Shift + S)
Esto solucionó el problema.
Probado con PyCharm 4.0.6 (OSX 10.10.3) siguiendo estos pasos:
- Haga clic en el menú PyCharm.
- Seleccione el intérprete del proyecto.
- Seleccione el icono de engranaje.
- Seleccione el botón Más.
- Seleccione el intérprete del proyecto en el que se encuentra.
- Seleccione el botón del árbol de directorio.
- Seleccione Recargar lista de rutas.
¡Problema resuelto!
Puede intentar cerrar Pycharm, eliminar la carpeta .idea
de su proyecto, luego volver a iniciar Pycharm y volver a crear el proyecto. Esto funcionó para mí mientras que invalidar caché no lo hizo.
Si ninguna de las otras soluciones funciona para usted, intente (realizar una copia de seguridad) y elimine su carpeta ~ / .PyCharm40 y luego vuelva a abrir PyCharm. Esto matará todas tus preferencias también.
En Mac, desea eliminar ~ / Library / Caches / Pycharm40 y ~ / Library / Preferences / PyCharm40.
Y en Windows: C: / Users / $ USER.PyCharm40.
Vaya, qué pesadilla, mi amalgama de diferentes respuestas de :
- Cambie al intérprete local /usr/bin/pythonX.X y aplique
- Ver rutas como respuesta anterior
- Encuentra la ruta de los esqueletos. El mío era (/home/tim/Desktop/pycharm-community-2016.2.3/helpers/python-skeletons)
- Cambie de nuevo al intérprete virt y agregue la ruta de los esqueletos manualmente si no se muestra automáticamente.