Я новичок в Python.Я использую следующую структуру каталогов и пытаюсь импортировать модуль OrgRepo в Func1.Я использую код virtualenv и vs в качестве своей IDE.
src/
├── Functions
│ ├── Func1
│ └── Func2
└── Shared
├── __init__.py
├── Repositories
│ ├── __init__.py
│ ├── OrgRepo
└── Utilities
├── __init__.py
└── DictUtil
Я также пробовал это без ` init .py '
Это мой ПУТЬ:
['/Users/username/Documents/Projects/myproject/name/src/Functions/Func1', '/Users/username/anaconda3/envs/my_virtual_env/lib/python37.zip', '/Users/username/anaconda3/envs/my_virtual_env/lib/python3.7', '/Users/username/anaconda3/envs/my_virtual_env/lib/python3.7/lib-dynload', '/Users/username/.local/lib/python3.7/site-packages', '/Users/username/anaconda3/envs/my_virtual_env/lib/python3.7/site-packages']
Я пробовал следующее для импорта OrgRepo в Func1:
1: from .Shared.Repositories import OrgRepo
ModuleNotFoundError: No module named '__main__.Shared'; '__main__' is not a package
2: from ..Shared.Repositories import OrgRepo
'
ValueError: attempted relative import beyond top-level package
3: from src.Shared.Repositories import OrgRepo
ModuleNotFoundError: No module named 'src'
4: `от Shared.Импорт репозиториев OrgRepo1
'ModuleNotFoundError: No module named 'Shared'
5: Я использую VS Code и когда я пытаюсь сохранить файл:
Он автоматически меняется на: import OrgRepo
import DictionaryUtilities
import datetime
import json
import sys
sys.path.insert(0, 'src/Repositories/')
6: import sys
sys.path.insert(
0, '/Users/username/Documents/Projects/project/m/src/Repositories')
import OrgRepo
и это:
sys.path.insert(0, 'Repositories')
sys.path.insert(0, .'Repositories')
sys.path.insert(0, ..'Repositories')
После запуска или сохранения код изменяется наthis: import OrgRepo
import sys
sys.path.insert(
0, '/Users/username/Documents/Projects/project/m/src/Repositories')
и получил эту ошибку:
ModuleNotFoundError: No module named 'OrgRepo'
Мне удалось установить это с помощью PIP и импортировать его, но это не соответствует нашим потребностям.
Я прочитал эти сообщения: Импорт файлов из другой папки
Модули импорта Python, структура папокs
Как импортировать несколько модулей Python из других каталогов
Как правильно импортировать модули Python из соседней папки?
Я также пытался прочитать / понять несколько других постов.,,Я даже несколько раз пытался стучать по конденсатору Flux, но безрезультатно.,
РЕДАКТИРОВАТЬ: я использую этот код для загрузки в качестве функции лямбда AWS.Хотя решение sys.path работает локально, оно не подходит для моего рабочего процесса.Это требует от меня изменения sys.path для импорта при загрузке и вызывает проблемы с Intellisense.Я хотел бы иметь возможность импортировать модуль напрямую.например, import OrgRepo
, поэтому Intellisense не выдает ошибок, и я могу заархивировать и загрузить свой пакет в AWS.У меня нет проблем с загрузкой пакета в AWS, когда я могу импортировать <module_name>
.
. Я активирую свою среду в Anaconda, а затем экспортирую следующую переменную среды PYTHONPATH:
export PYTHONPATH=src/shared/repositories:src/shared/utilities
Я также пытался export PYTHONPATH=$PATH:src/shared/repositories:src/shared/utilities
Это работало некоторое время, и теперь я получаю PYTHON[unresolved-import]
с IntelliSense.Кажется, я не получаю эту ошибку, когда пытаюсь запустить скрипт из каталога выше /src
.
Я был бы очень признателен, если бы кто-нибудь показал мне, как я могу импортировать свои модули, используя стандартный import <module>
и он постоянно работает.