• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

646
Vistas
Error de "importación no resuelta" de Pylint en Visual Studio Code

Estoy usando la siguiente configuración

  • macOS v10.14 (Mojave)
  • Pitón 3.7.1
  • Código de estudio visual 1.30
  • Pylint 2.2.2
  • Django 2.1.4

Quiero usar linting para hacer mi vida un poco más fácil en Visual Studio Code. Sin embargo, para cada importación tengo estados "importación no resuelta". Incluso en las importaciones predeterminadas de Django (es decir, desde los modelos de importación django.db).

Supongo que es porque no está viendo los archivos Python del entorno virtual.

Todo funciona bien, pero está empezando a ser molesto.

Las opciones de intérprete que tengo son todas las versiones del sistema de Python. No parece ver mi entorno virtual Python en absoluto (no está en el mismo directorio que mi espacio de trabajo, por lo que esa parte tiene sentido).

Si configuro python.PythonPath en el archivo settings.json , simplemente lo ignora y no muestra la ruta de mi entorno virtual como una opción. También intenté configurarlo en mi configuración global de Python, pero tampoco aparece.

¿Hay una solución rápida para que funcione?

about 3 years ago · Santiago Trujillo
30 Respuestas
Responde la pregunta

0

En la configuración de su espacio de trabajo, puede configurar su ruta de Python de esta manera:

 { "python.defaultInterpreterPath": "/path/to/your/venv/bin/python", }
about 3 years ago · Santiago Trujillo Denunciar

0

Si tiene este código en su archivo settings.json , elimínelo:

 { "python.jediEnabled": false }
about 3 years ago · Santiago Trujillo Denunciar

0

Este problema ya se ha abierto en GitHub:

Problema de importación de Python no resuelto #3840

Hay dos respuestas muy útiles, de MagnuesBrzenk y SpenHouet.

La mejor solución por ahora es crear un archivo .env en la carpeta raíz de su proyecto. Luego agregue un PYTHONPATH así:

 PYTHONPATH=YOUR/MODULES/PATH

Y en su settings.json agregue:

 "python.envFile": ".env"
about 3 years ago · Santiago Trujillo Denunciar

0

Tengo una solución diferente: mi instancia de Visual Studio Code había recogido el virtualenv almacenado en .venv , pero estaba usando el binario de Python incorrecto. Estaba usando .venv/bin/python3.7 ; usando el conmutador en la barra de estado azul.

Lo cambié para usar .venv/bin/python y todas mis importaciones se resolvieron correctamente.

No sé qué está haciendo Visual Studio Code detrás de escena cuando hago esto, ni entiendo por qué esto estaba causando mi problema, pero para mí esta fue una solución un poco más simple que editar la configuración de mi espacio de trabajo.

about 3 years ago · Santiago Trujillo Denunciar

0

Cuando lo hago > reload window que lo arregla.

Referencia: Problema de importación no resuelto de Python #3840, comentario de dkavraal

about 3 years ago · Santiago Trujillo Denunciar

0

Forma alternativa: ¡usa la interfaz de comandos!

Cmd / Ctrl + Shift + P → Python: Select Interpreter → elige el que tiene los paquetes que buscas:

Ingrese la descripción de la imagen aquí

about 3 years ago · Santiago Trujillo Denunciar

0

La respuesta aceptada no solucionará el error al importar módulos propios.

Use la siguiente configuración en la configuración de su espacio de trabajo .vscode/settings.json :

 "python.autoComplete.extraPaths": ["./path-to-your-code"],

Referencia: solución de problemas, advertencias de importación no resueltas

about 3 years ago · Santiago Trujillo Denunciar

0

Ninguna de las respuestas anteriores funcionó para mí. Sin embargo, agregué las dos líneas a continuación a mi archivo settings.json .

 "python.analysis.disabled": [ "unresolved-import" ], "python.linting.pylintArgs": ["--load-plugin","pylint_protobuf"]

La primera línea realmente solo oculta el error de pelusa. Ciertamente no es una solución permanente, pero despeja la pantalla.

Esta respuesta me dio la segunda línea: VS Code PyLint Error E0602 (variable indefinida) con estructura de Python compilada por ProtoBuf

Tal vez alguien que entienda Python más que yo pueda explicarlo mejor.

about 3 years ago · Santiago Trujillo Denunciar

0

En caso de un error de Pylint, instale lo siguiente

 pipenv install pylint-django

Luego cree un archivo, .pylintrc , en la carpeta raíz y escriba lo siguiente

 load-plugins=pylint-django
about 3 years ago · Santiago Trujillo Denunciar

0

Esto funciona para mí:

Abra la paleta de comandos ( Ctrl + Shift + P ) y elija "Python: Seleccionar intérprete".

Al hacer esto, configura el intérprete de Python en Visual Studio Code.

about 3 years ago · Santiago Trujillo Denunciar

0

Mi solución

Esta solución es solo para el proyecto actual.

  1. En la raíz del proyecto, cree la carpeta .vscode

  2. Luego crea el archivo .vscode/settings.json

  3. En el archivo setting.json , agregue la línea (esto es para Python 3)

     { "python.pythonPath": "/usr/local/bin/python3", }
  4. Este es el ejemplo para Python 2

     { "python.pythonPath": "/usr/local/bin/python", }
  5. Si no sabe dónde se encuentra su instalación de Python, simplemente ejecute el comando what which python o which python3 en la terminal. Imprimirá la ubicación de Python.

  6. Este ejemplo funciona para Python dockerizado - Django.

about 3 years ago · Santiago Trujillo Denunciar

0

Resolví el error de importación con Ctrl + Shift + P. Escriba "Configuración de preferencias" y seleccione la opción Preferencias Abrir configuración (JSON)

Y agregue la línea "python.pythonPath": "/usr/bin/"

Entonces, el contenido JSON debería verse así:

 { "python.pythonPath": "/usr/bin/" }

Mantenga otras líneas de configuración si están presentes. Esto debería importar todos los módulos que ha instalado usando PIP para autocompletar.

about 3 years ago · Santiago Trujillo Denunciar

0

La solución de Shinebayar G funcionó, pero esta otra es un poco más elegante:

Copiado del problema de importación no resuelto de Python #3840 :

Dada la siguiente estructura de proyecto de ejemplo:

  • espacio de trabajoRootFolder
    • .vscode
  • ... otras carpetas
  • carpeta de código

Lo que hice para resolver este problema:

  1. Vaya a la carpeta del espacio de trabajo (aquí workspaceRootFolder) y cree un archivo .env
  2. En este archivo .env vacío, agregue la línea PYTHONPATH=codeFolder (reemplace codeFolder con el nombre de su carpeta)
  3. Agregue "python.envFile": "${workspaceFolder}/.env" a settings.json
  4. Reinicie el código de Visual Studio
about 3 years ago · Santiago Trujillo Denunciar

0

Mi solución fue abrir Visual Studio Code en un directorio anterior.

about 3 years ago · Santiago Trujillo Denunciar

0

Pude resolver esto habilitando jedi en .vscode\settings.json

 "python.jediEnabled": true

Referencia de https://github.com/Microsoft/vscode-python/issues/3840#issuecomment-456017675

about 3 years ago · Santiago Trujillo Denunciar

0

En mi caso, ya tenía un entorno Conda activado, pero aún quería que los módulos locales de Python estuvieran disponibles para autocompletar, mirar definición, etc.

Probé muchas soluciones, como agregar una lista de rutas de Python, etc., pero lo que finalmente me resolvió fue crear un enlace simbólico desde lib/python{your version}/site-packages de Conda a mi módulo local.

about 3 years ago · Santiago Trujillo Denunciar

0

Si eres más visual como yo, puedes usar las configuraciones de Visual Studio Code en el menú Archivo → Preferencias → Configuración ( Ctrl + , ). Vaya a Extensiones → Python .

En la sección Análisis: Deshabilitado , agregue la supresión del siguiente mensaje: unresolved-import :

Configuración de código de Visual Studio

about 3 years ago · Santiago Trujillo Denunciar

0

Para mí, el problema estaba relacionado con el proyecto en el que estaba trabajando. Me tomó un tiempo resolverlo, así que espero que esto ayude:

Estructura de la carpeta original:

 root/ __init__.py # Empty folder/ __init__.py # Empty sub_folder_b/ my_code.py sub_folder_c/ another_code.py

En otro_código.py:

 from folder.sub_folder_b import my_code.py

Esto no activó el intellisense en Visual Studio Code, pero se ejecutó correctamente.

Por otro lado, agregar "raíz" en la ruta de importación hizo que Intellisense funcionara, pero generó ModuleNotFoundError al ejecutar:

 from root.folder.sub_folder_b import my_code.py

La solución fue eliminar el archivo _init_.py dentro del directorio "carpeta", dejando solo el _init_.py ubicado en /root .

about 3 years ago · Santiago Trujillo Denunciar

0

Debe seleccionar el intérprete asociado con el entorno virtual.

Ingrese la descripción de la imagen aquí

Haga clic aquí (en la barra de estado inferior):

Ingrese la descripción de la imagen aquí

Y simplemente seleccione el entorno virtual con el que está trabajando. Hecho.

A veces, incluso con el intérprete seleccionado, no funcionará. Simplemente repita el proceso nuevamente y debería resolverlo.

Ingrese la descripción de la imagen aquí

about 3 years ago · Santiago Trujillo Denunciar

0

Tengo una biblioteca que falla cuando intento incluirla usando el servicio de lenguaje Jedi y funciona bien sin ella (es decir, la de C#).

La biblioteca es jsonslicer y depende de una biblioteca C externa que instalé en /usr/local/lib . ¿Puede eso tener algo que ver?

Instalé el servicio Jedi y la biblioteca en mi entorno Conda y usé ese entorno dentro de Visual Studio. Funciona bien en tiempo de ejecución y en mi terminal, pero no cuando busco problemas en mis archivos fuente y aparece como un error.

about 3 years ago · Santiago Trujillo Denunciar

0

Primero, asegúrese de haber instalado el complemento, pero es probable que el directorio del espacio de trabajo no esté configurado correctamente. Simplemente verifique Pylint y edite el archivo settings.json subyacente.

 { "python.pythonPath": "/usr/local/bin/python3", "git.ignoreLimitWarning": true }
about 3 years ago · Santiago Trujillo Denunciar

0

Instale code-runner y agregue el siguiente código en la carpeta settings.json:

 "code-runner.executorMap": { "python": "python3 -u", }

"python": "(el ejecutable de Python con módulos o su ruta) -u",

about 3 years ago · Santiago Trujillo Denunciar

0

Eso sucede porque Visual Studio Code considera su carpeta actual como la carpeta principal, en lugar de considerar la carpeta principal real.

La forma rápida de solucionarlo es proporcionar la ruta del intérprete a la carpeta principal.

Presione Comando + Shift + P (o Ctrl + Shift + P en la mayoría de los demás sistemas).

Escriba el intérprete de Python

Seleccione la ruta donde instaló Python entre las opciones disponibles.

about 3 years ago · Santiago Trujillo Denunciar

0

Me he enfrentado a este problema de tres maneras. Aunque para cada uno de ellos hay una solución disponible en las respuestas a esta pregunta, solo pensé en ponerlo todo junto.

  1. Primero obtuve una "Importación no resuelta" mientras importaba algunos módulos y noté que mis instalaciones estaban ocurriendo en pip global en lugar del entorno virtual.

    Este problema se debió al intérprete de Python. Debe seleccionar el intérprete en Visual Studio Code usando Shift + Ctrl + P y luego escribir Select Python Interpreter . Seleccione su intérprete venv aquí.

  2. El segundo problema fue: El cambio anterior no resolvió mi problema por completo. Esta vez fue por el archivo settings.json . Si no tiene el archivo settings.json en el directorio de su proyecto, cree uno y agregue la siguiente línea:

     { "python.pythonPath": "apis/bin/python" }

    Básicamente, esto le indicará a Visual Studio Code que use el intérprete de Python que está en su venv.

  3. El tercer problema fue al importar un módulo o archivo de Python personalizado en otro programa. Para ello, debe comprender la estructura de carpetas. Como Python en venv está dentro de bin, deberá especificar la carpeta de su módulo (la mayoría de las veces la carpeta de la aplicación). En mi caso fue la app ,

     from app.models import setup_db

    Verbalmente, importe setup_db desde models.py reside en la carpeta de la aplicación .

about 3 years ago · Santiago Trujillo Denunciar

0

Me pregunto cuántas soluciones tiene este problema (o no), probé la mayoría de las anteriores, nada funcionó, la única solución que funcionó es configurar el servidor de lenguaje python en Jedi, en lugar de Microsoft en el archivo settings.json:

 "python.languageServer": "Jedi"
about 3 years ago · Santiago Trujillo Denunciar

0

Si está utilizando pipenv , debe especificar la ruta a su archivo virtual environment.in settings.json . Por ejemplo :

 { "python.pythonPath": "/Users/username/.local/share/virtualenvs/Your-Virual-Env/bin/python" }

Esto puede ayudar.

about 3 years ago · Santiago Trujillo Denunciar

0

Ninguna de las soluciones funcionó excepto esta. Reemplazar "Pylance" o "Microsoft" en settings.json resolvió el mío.

 "python.languageServer": "Jedi"
about 3 years ago · Santiago Trujillo Denunciar

0

Tengo el mismo problema con python 3.8.5 usando venv, vscode 1.48.2. Encontré mi solución. En (carpeta env)/lib/site-packages no contiene los paquetes. Yo uso esta configuración (.vscode/settings.json)

 { "python.autoComplete.extraPaths": [ "./**", ], "python.pythonPath": "env\\Scripts\\python.exe", "python.languageServer": "Microsoft" }
about 3 years ago · Santiago Trujillo Denunciar

0

Cambiar Python:Language Server a 'Jedi' funcionó para mí. Inicialmente era 'Windows'.

about 3 years ago · Santiago Trujillo Denunciar

0

Si alguien es tan idiota como yo, lo siguiente funcionó.

Estructura de carpetas anterior:

 awesome_code.py __init__.py src/ __init__.py stuff1.py stuff2.py

Nueva estructura:

 awesome_code.py src/ __init__.py stuff1.py stuff2.py
about 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda