Как импортировать файл python, расположенный в том же подкаталоге в проекте pycharm
у меня есть ошибка ввода в pycharm при отладке и запуске.
моя структура проекта укоренена должным образом,etc./HW3/.
, Так что HW3
является корневым каталогом.
у меня есть подпапка в HW3,util
, а также файл util/util.py
. У меня есть еще один файл в util
под названием run_tests.py
.
на run_tests.py
, у меня есть следующая структура импорта,
from util.util import my_functions, etc.
это дает ошибку ввода,from util.util import load_dataset,proportionate_sample
ImportError: No module named 'util.util'; 'util' is not a package
однако, в точно такой же проект, в другом каталоге (тот же уровень, что и util
) позвонил data
, у меня есть файл data/data_prep.py
, которая также импортирует функции из util/util.py
использование аналогичного оператора импорта...и он работает без каких-либо проблем.
очевидно, я делаю это как домашнее задание, поэтому у меня нет такого опыта...но я сделал эту точную конфигурацию для последних 3 homeworks и столкнулся с нулевыми проблемами, поэтому я понятия не имею, как даже устранить эту проблему,особенно когда другой файл работает.
проблема исчезает, когда я перемещаю файл в другой каталог. Поэтому я думаю, что этот вопрос как импортировать файл python, расположенный в том же каталоге в проекте pycharm? потому что pycharm вызывает ошибку, если я делаю import util
и предлагает мне использовать полное имя из корня.
4 ответов
если у вас нет __init__.py
создайте один и добавьте эту строку
from util.util import my_function
затем вы можете легко импортировать модуль в ваших скриптах
the __init__.py
говорит python, что он должен рассматривать эту папку как пакет python, его также можно использовать для импорта/загрузки модулей.
в большинстве случаев __init__.py
пусто.
со ссылкой на документы
The __init__.py файлы необходимы, чтобы заставить Python лечить каталоги, содержащие пакеты; это делается для предотвращения каталоги с общим именем, например string, из непреднамеренно скрытие допустимых модулей, которые возникают позже в пути поиска модуля. В самый простой случай, __init__.py может быть просто пустой файл, но это может быть также выполните код инициализации для пакета или установите __all__ переменная, описанная позже.
Рекомендуется:
убедитесь, что рабочая папка установлена как Sources
.
вы можете сделать это Pycharm
->
Preferences
->
Project: XYZ
->
Project Structure
выберите рабочую папку и отметьте ее как Sources
. Затем Pycharm распознает рабочую папку как исходную папку для проекта, и вы сможете просто добавить другие файлы в эту папку, используя
import filename.py
или
from filename.py import mudule1
=================
не рекомендуется:
на Pycharm
вы можете просто добавить .
до .py
файл, который вы собираетесь импортировать из папку. В вашем случае это будет
from .util import my_functions
Примечание: может быть немного не связаны.
я столкнулся с той же проблемой, но я не смог импортировать модуль в тот же каталог (а не подкаталог, как просил OP) при запуске ноутбук jupyter (здесь в каталоге не было __init__.py). Как ни странно, я установил путь python и местоположение интерпретатора и все такое. Ни один из других ответов не помог, но изменение каталога в python сделало.
import os
os.chdir(/path/to/your/directory/)
Я использую PyCharm 2017.3
on Ubuntu 16.04
ModuleNotFoundError: нет модуля с именем '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')),
]