python - descargar - ¿Por qué PyCharm da errores de referencia no resueltos en algunas importaciones Numpy?
numpy windows (6)
El desarrollador de PyCharm publicó una solución alternativa para una posible causa de falla de inspección:
https://youtrack.jetbrains.com/issue/PY-32029
En un venv
, la inspección puede fallar si tiene una carpeta venv
en el directorio del proyecto. Haga clic derecho, marque el directorio como excluido.
La siguiente línea en PyCharm está marcada por la inspección sobre la marcha con errores de referencia no resueltos para cada importación. (Están subrayados en rojo.)
from numpy import tan, arcsin, arccos, arctan
Sin embargo, las siguientes importaciones no causan ningún error / advertencia:
from numpy import sin, cos, arctan2, sqrt, cross, pi
El código en el que utilizo estas importaciones funciona bien sin ningún error o advertencia. Generalmente, confío en los errores rojos de PyCharm como advertencia de que mi código está dañado y no se ejecutará, pero en este caso PyCharm está equivocado.
¿Por qué algunas de las funciones de Numpy son reconocidas por la introspección de PyCharm y otras no?
Versiones actuales:
- Windows 7 de 64 bits
- Python 2.7.5
- PyCharm 3.1.2
- Numpy 1.8
¡Gracias!
La configuración de Python se especifica en (al menos) dos lugares: Run | Edit Configurations | Python | Python Interpreter
Run | Edit Configurations | Python | Python Interpreter
Run | Edit Configurations | Python | Python Interpreter
, y File | Settings | Project | Project Interpreter
File | Settings | Project | Project Interpreter
File | Settings | Project | Project Interpreter
. Mi error fue que no configuré la instalación correcta de Python en el File | Settings ...
File | Settings ...
Por lo tanto, se refería a una configuración de Python que no tenía la importación instalada (por ejemplo, NumPy).
Después de configurar estas dos ubicaciones para que apunten a la misma instalación correcta de Python, hice un File | Invalidate Caches / Restart
File | Invalidate Caches / Restart
, entonces estaba bien.
Un tercer lugar para comprobar es el File | Default Settings... | Project Interpreter
File | Default Settings... | Project Interpreter
File | Default Settings... | Project Interpreter
y asegúrese de que coincida con las otras configuraciones.
La razón por la que está recibiendo esto es debido al análisis estático de PyCharm. Ahora, lo que Python hace es usar esqueletos estáticos (algunos son generados previamente y otros generados) para proporcionarle el análisis. Eche un vistazo a los esqueletos pre-generados aquí -> https://github.com/JetBrains/python-skeletons
Esto podría resolverse habilitando lo siguiente:
Sin embargo, si eso no funciona:
lo que bloqueará el error, aparecerá como un comentario sobre la línea.
Lo siguiente a menudo ayuda a resolver referencias no resueltas falsas positivas.
File | Invalidate Caches
Pude resolver el problema simplemente usando un virtualenv en lugar del intérprete del sistema. Ninguno de los otros métodos que encontré en algún lugar me funcionó antes.
Estoy usando Windows 7, PyCharm Community Edition 2018.2.4, Python 3.6.7, Numpy 1.15.4
- Cree un nuevo proyecto llamado my_project y configúrelo para usar el intérprete del sistema
File -> Settings -> Project: my_project -> Project Interpreter -> Select your project -> Select the system interpreter
Cree el siguiente script de prueba
script1.py
dentro del proyecto:import numpy print(np.tan(8))
Ahora, ejecutar este script funciona bien e imprime algunos números, pero Pycharm lanza una advertencia de referencia no resuelta y
Ctrl->Click
entan
no va al código numpy como debería.Crear manualmente el entorno virtual.
cd dir/to/my_project virtualenv venv venv/Scripts/activate pip install numpy deactivate
En Linux, reemplace la línea de activación con la
source venv/bin/activate
- Dígale a PyCharm que use el entorno virtual:
File -> Settings -> Project: my_project -> Project Interpreter -> Select your project -> Select Python 3.6 (my_project)
que debería tener el python.exe dentro de su carpeta de proyecto en algún lugar de la carpetavenv
. - Ahora
File -> Invalide Caches / Restart ... -> Invalidate and restart
- Espere a que se realice toda la indexación y verifique si puede
Ctrl->Click
entan
en suscript1.py
De esta manera, pude solucionar el mismo problema para otros paquetes como torch y opencv (simplemente creando un entorno virtual con todos los paquetes que necesito). No hay más referencias sin resolver hasta el momento.
No tengo idea de por qué funcionaría de esta manera pero no funcionaría con el intérprete del sistema.
Puede deshabilitar las inspecciones en bibliotecas específicas (como numpy). Esto me resultó muy útil ya que mi barra de desplazamiento estaba constantemente iluminada por este problema. Vaya a Configuración -> Editor -> Inspecciones -> Python -> Referencias no resueltas (cerca de la parte inferior) y vaya a la sección Ignorar referencias en la parte inferior derecha de la ventana.
¡Agregue una entrada con "numpy. *" Sin las comillas y no verá estas referencias sin resolver en numpy iluminando su barra de desplazamiento nunca más!