Ошибка при установке Python Plugin: ModuleNotFoundError: Нет модуля с именем <модуль>
Я пытаюсь создать Python-плагин для Saleor, используя Poetry, и у меня возникают проблемы с установкой плагина на Saleor. Я запускаю poetry add ../social_auth
для установки плагина на Saleor, и это удается, но когда я пытаюсь запустить Saleor, я получаю эту ошибку:
No module named 'social_auth'
File
"/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level) File "/home/ton/.cache/pypoetry/virtualenvs/saleor-nXZtbKPR-py3.9/lib/python3.9/site-packages/django/apps/config.py",
line 224, in create
import_module(entry) File "/home/ton/.cache/pypoetry/virtualenvs/saleor-nXZtbKPR-py3.9/lib/python3.9/site-packages/django/apps/registry.py",
line 91, in populate
app_config = AppConfig.create(entry) File "/home/ton/.cache/pypoetry/virtualenvs/saleor-nXZtbKPR-py3.9/lib/python3.9/site-packages/django/__init__.py",
line 24, in setup
apps.populate(settings.INSTALLED_APPS) File "/home/ton/.cache/pypoetry/virtualenvs/saleor-nXZtbKPR-py3.9/lib/python3.9/site-packages/django/utils/autoreload.py",
line 64, in wrapper
fn(*args, **kwargs) File "/home/ton/.cache/pypoetry/virtualenvs/saleor-nXZtbKPR-py3.9/lib/python3.9/site-packages/django/core/management/__init__.py",
line 375, in execute
autoreload.check_errors(django.setup)() File "/home/ton/.cache/pypoetry/virtualenvs/saleor-nXZtbKPR-py3.9/lib/python3.9/site-packages/django/utils/autoreload.py",
line 87, in raise_last_exception
raise _exception[1] File "/home/ton/.cache/pypoetry/virtualenvs/saleor-nXZtbKPR-py3.9/lib/python3.9/site-packages/django/core/management/commands/runserver.py",
line 110, in inner_run
autoreload.raise_last_exception() File "/home/ton/.cache/pypoetry/virtualenvs/saleor-nXZtbKPR-py3.9/lib/python3.9/site-packages/django/utils/autoreload.py",
line 64, in wrapper
fn(*args, **kwargs) File "/usr/lib/python3.9/threading.py", line 910, in run
self._target(*self._args, **self._kwargs) File "/usr/lib/python3.9/threading.py", line 973, in _bootstrap_inner
self.run() File "/usr/lib/python3.9/threading.py", line 930, in _bootstrap
self._bootstrap_inner()
Но я проверил, модуль находится в settings.INSTALLED_APPS
, settings.PLUGINS
и перечислен в pip list
...
Вот структура плагина:
├── __init__.py
├── poetry.lock
├── pyproject.toml
└── social_auth
├── __init__.py
└── plugin.py
1 directory, 5 files
файл pyproject.toml
:
[tool.poetry]
name = "social-auth"
version = "0.1.0"
description = "Social auth for saleor"
authors = ["Wellington Zenon <wellington.zenon@gmail.com>"]
packages = [
{ include = "plugin.py", from="social_auth"}
]
[tool.poetry.dependencies]
python = "^3.9"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.poetry.plugins."saleor.plugins"]
"social_auth" = "social_auth.plugin:SocialLoginPlugin"
файл plugin.py
:
Как я могу решить эту проблему?
Проблема заключалась в том, что pyhton не мог найти источник плагина, так как его не было в PYTHONPATH
, и мне пришлось добавить его в переменную окружения PYTHONPATH
, используя эту команду:
PYTHONPATH=path/to/plugin