Как управлять редактируемыми общими библиотеками с поэзией? - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть 2 python проектов A и B

  • A зависит от B
  • B - это общая библиотека, которая используется другими проектами
  • B Сборка и установка

занимали много времени. Ранее, когда мне приходилось настраивать свою среду разработки на компьютере fre sh, рабочий процесс был следующим:

  1. . виртуальная среда
  2. git клон A и B
  3. запустить настройку B развернуть
  4. запустить настройку A развернуть

Теперь я могу редактировать A и B and pu sh изменяет git без необходимости перезапуска настройки A и B. Каждый раз

Теперь я хочу интегрировать поэзию в свой рабочий процесс. В идеале я хочу иметь возможность git clone A и запускать poetry install A, чтобы он отражал мои настройки выше, но у меня возникают проблемы с установкой B через настройку A, при этом все еще сохраняя возможность редактирования B. Исходя из этой темы кажется, что разделение venv между двумя проектами невозможно.

Мой обходной путь:

  • git клон A и B
  • поэтическая установка B
  • редактирование pyproject.toml А для указания на каталог B, который я установил вручную (B = {path = "../B/"})
  • поэзия установки A

Мне действительно не нравится этот рабочий процесс, так как pyproject.toml A теперь работает только на моем компьютере. Я просмотрел темы и документацию поэзии и не смог найти решения, связанного с этой ситуацией. Любые советы приветствуются.

pyproject.toml * A

[tool.poetry.dependencies]
python = "^3.7"
# B = {git = "https://repo.com/myrepo/B.git"}
B = {path = "../B/"}

Редактировать: я понял, что если я установлю B перед A и отредактирую pyproject перед установкой AI, это может помешать 2 установкам B

1 Ответ

1 голос
/ 19 февраля 2020

Я не уверен, что это решит вашу проблему, но вы можете использовать один venv для двух проектов (это то, что вам нужно?), Сначала создав виртуальную среду, а затем установив в нее обе зависимости проекта.

Я не могу проверить это сейчас, но что-то вроде этого может помочь:

# create the virtual environment and activate  
$ python3 -mvenv .venv
$ . .venv/bin/activate

# install dependencies of both projects in it
$ cd B
$ poetry install
$ cd ../A
$ poetry install
...