Poetry install, похоже, не устанавливает пакеты в нужное место

Итак, у меня уже довольно долгое время есть проблема, которую я не могу решить. В основном я взял на себя управление проектом, который использует Poetry для управления пакетами (это проект Django). Добавление пакетов с помощью 'poetry add', а затем их установка с помощью 'poetry install' - все работает нормально локально (я использую контейнер Docker). Но при переносе изменений на мой сервер и последующем запуске 'poetry install' говорится, что пакеты уже установлены. Но при запуске приложения Django я получаю внутреннюю ошибку сервера, говорящую, что пакет не существует. Пример приведен с пакетом 'openpyxl'.

pyproject.toml

...
[tool.poetry.dependencies]
openpyxl = "^3.0.10"
...

poetry.lock

...
[[package]]
name = "openpyxl"
version = "3.0.10"
description = "A Python library to read/write Excel 2010 xlsx/xlsm files"
category = "main"
optional = false
python-versions = ">=3.6"

[package.dependencies]
openpyxl = {version = ">=2.6.0", optional = true, markers = "extra == \"xlsx\""}

[package.extras]
all = ["markuppy", "odfpy", "openpyxl (>=2.6.0)", "pandas", "pyyaml", "tabulate", "xlrd", "xlwt"]
cli = ["tabulate"]
html = ["markuppy"]
ods = ["odfpy"]
pandas = ["pandas"]
xls = ["xlrd", "xlwt"]
xlsx = ["openpyxl (>=2.6.0)"]
yaml = ["pyyaml"]

openpyxl = [
    {file = "openpyxl-3.0.10-py2.py3-none-any.whl", hash = "sha256:0ab6d25d01799f97a9464630abacbb34aafecdcaa0ef3cba6d6b3499867d0355"},
    {file = "openpyxl-3.0.10.tar.gz", hash = "sha256:e47805627aebcf860edb4edf7987b1309c1b3632f3750538ed962bbcc3bd7449"},
]
...

ошибка: enter image description here

Есть кто-нибудь, кто имеет опыт работы с Poetry и может помочь мне с этим?

Я делаю предположение о нескольких идеях, которые вы можете попробовать (не зная больше о проблеме/контексте). Для начала:

  1. при запуске / старте вашего приложения вы используете poetry run... / poetry run python...? Я перечисляю это первым, так как кажется, что среда py не получает доступ к установленным библиотекам. хотел бы узнать команду "при запуске приложения Django"
  2. .
  3. на сервере, вы можете попробовать удалить файл блокировки и повторно запустить poetry lock, poetry install, чтобы иметь "новый старт". Файл блокировки, который вы предоставили, это файл с сервера?
  4. Как вы используете Docker, это только на локальном сервере? Используете ли вы Docker на сервере как запущенный контейнер? Вы можете попробовать докеризировать ваше приложение, и как часть Dockerfile скопировать файлы pyproject.toml/poetry.lock иметь docker RUN poetry cmds для установки ваших deps.
  5. .
  6. Опять же, это выстрелы в темноте. Некоторые области, которые могут быть более понятными/детальными, это (а) как вы запускаете приложение Django и (б) как вы используете Docker. Если вы рассматриваете пункт #3, я могу предложить вам более подробное решение. Я работал с довольно большим количеством приложений/сервисов docker+poetry.

Вернуться на верх