Может ли кто-нибудь двусмысленно объяснить мне, что именно является "модулем" и что такое "каталог" в python, и меня смущают venv
, wsl
, оба или нет в этом случае?
Я пытаюсь импортировать метод с именем save_clusters
в файл с именем driver.py
из файла с именем save_clusters.py
, в котором есть только этот одноименный метод. Структура папок выглядит следующим образом:
[venv:
/assets
/bin
/doc
/include
/lib
/main
/clustering_scripts
...
/save_clusters.py # a function from this ... "module"?
/folder2
/otherstuff
/driver.py # needs to go here.
]
Мои чувства паука из javascript предполагают, что main
как «модуль» должен предварять любой импорт, и мой vscode intellisense согласен со мной в этом (предлагает до from main.clustering_scripts.save_clusters import save_clusters
). Однако, когда я делаю это и запускаю драйвер, я получаю следующую ошибку:
Traceback (most recent call last): "driver.py", line 8, in <module>
from main.clustering_scripts.save_clusters import save_clusters
ModuleNotFoundError: No module named 'main'
Что работает следующим образом (в driver.py
) from clustering_scripts.save_clusters import save_clusters
. Но и то, и другое кажется немного произвольным, и моя интеллигентность подчеркивает его желтыми загогулинами и не дает подсказок по методу, когда я пытаюсь его использовать. Тем не менее, во время выполнения все работает отлично.
Это какой-то ___init__.py
, который я где-то не положил, или я пропускаю что-то от характера импорта в python ?? Я использую «удаленный» WSL-сервер и виртуальную среду для усложнения вещей (возможно).
Большое спасибо.