tutorial empty python pycharm importerror

python - tutorial - pycharm interpreter field is empty



Cómo importar un archivo de Python ubicado en el mismo subdirectorio en un proyecto pycharm (5)

Tengo un error de entrada en pycharm al depurar y ejecutar.

La estructura de mi proyecto está correctamente enraizada, etc./HW3/. de modo que HW3 es el directorio raíz.

Tengo una subcarpeta en HW3, util y un archivo, util/util.py Tengo otro archivo en util llamado run_tests.py .

En run_tests.py , tengo la siguiente estructura de importación,

from util.util import my_functions, etc.

Esto produce un error de entrada, from util.util import load_dataset,proportionate_sample ImportError: No module named ''util.util''; ''util'' is not a package from util.util import load_dataset,proportionate_sample ImportError: No module named ''util.util''; ''util'' is not a package

Sin embargo, en el mismo proyecto exacto, en otro directorio (mismo nivel que util ) llamado data , tengo un archivo data/data_prep.py , que también importa funciones de util/util.py usando una declaración de importación similar ... y Corre sin ningún problema.

Obviamente, estoy haciendo esto en el curso de hacer una tarea, así que por favor, comprenda: esto es auxiliar al alcance de la tarea.

El problema desaparece cuando muevo el archivo a otro directorio. Entonces, supongo que esta pregunta es ¿Cómo importo un archivo de Python ubicado en el mismo directorio en un proyecto pycharm? Porque pycharm genera un error si acabo de import util y me pide que use el nombre completo de la raíz.


ModuleNotFoundError: ningún módulo llamado ''appTwo''

from django.conf.urls import url,include from django.contrib import admin from appTwo import views urlpatterns = [ url(r''^$'',views.index,name=''index''), url(r''^admin/'', admin.site.urls), url(r''^users/'',include(''appTwo.urls'')), ]


Nota: puede ser un poco sin relación.

Estaba enfrentando el mismo problema pero no pude importar un módulo en el mismo directorio (en lugar del subdirectorio como lo pidió OP) al ejecutar un cuaderno jupyter (aquí el directorio no tenía __init__.py). Curiosamente, tuve la configuración de la ruta de Python y la ubicación del intérprete y todo. Ninguna de las otras respuestas ayudó, pero sí lo hizo cambiar el directorio en python.

import os os.chdir(/path/to/your/directory/)

Estoy usando PyCharm 2017.3 en Ubuntu 16.04


Si no tiene un __init__.py cree uno y agregue esta línea

from util.util import my_function

luego, puede importar fácilmente el módulo en sus scripts. __init__.py le dice a python que debería tratar esa carpeta como un paquete de python, también se puede usar para importar / cargar módulos.

en la mayoría de los casos, el __init__.py está vacío.

Citando los documentos

Los archivos __init__.py son necesarios para que Python trate los directorios como paquetes que contienen; esto se hace para evitar que los directorios con un nombre común, como una cadena, oculten involuntariamente los módulos válidos que aparecen más adelante en la ruta de búsqueda del módulo. En el caso más simple, __init__.py solo puede ser un archivo vacío, pero también puede ejecutar el código de inicialización del paquete o establecer la variable __all__, que se describe más adelante.


Tuve el mismo problema con pycharm, pero el error real fue que el archivo que estaba intentando importar no tenía una extensión .py, aunque pude ejecutarlo como un script independiente. Busque en la ventana del explorador y asegúrese de que tenga una extensión .py. Si no es así, haga clic con el botón derecho en el archivo en la ventana del explorador, seleccione refactor y luego cambie su nombre con una extensión .py.


Manera recomendada:

Asegúrese de establecer la carpeta de trabajo como Sources .

Puedes hacerlo en Pycharm -> Preferences -> Project: XYZ -> Project Structure

Seleccione su carpeta de trabajo y márquela como Sources . Luego, Pycharm reconoce la carpeta de trabajo como una carpeta de origen para el proyecto y podrá simplemente agregar otros archivos dentro de esa carpeta usando

import filename.py

o

from filename.py import mudule1

=================

Forma no recomendada:

En Pycharm puedes simplemente añadir . antes del archivo .py que lo va a importar desde la misma carpeta . En tu caso será

from .util import my_functions