В PyCharm, как добавить каталог из одного проекта в качестве источника в другой проект?

У меня есть несколько проектов python, начинающихся с git repos, все связанные друг с другом, все из которых открыты в одном окне PyCharm.

У меня есть код python в одном проекте, называйте его проектом B, который импортирует пакеты python из проекта A, но PyCharm не может найти источник.

Я пометил каталоги с пакетами python в проекте A в качестве исходных каталогов в PyCharm, и действительно, другой код в проекте A может искать эти пакеты python. Но эти исходные каталоги не являются частью таблицы поиска для других проектов в том же окне.

Есть ли способ в PyCharm, чтобы один проект распознавал каталоги из другого проекта в качестве исходного каталога?

Ответ 1

Вы должны указать Pycharm использовать Project A как еще один "корень контента" для Project B.

  1. В верхней панели перейдите в Файл → Настройки... → Проект: [имя вашего проекта здесь] → Структура проекта.
  2. Нажмите + Add Content Root на правой панели
  3. Выберите папку проекта A во всплывающем окне " Select content root directory
  4. Нажмите ОК

Теперь вы увидите, что Проект A указан на правой панели.

  1. Нажмите на проект A на правой панели
  2. Теперь содержание проекта А в списке. Выберите те, которые вы хотите включить в качестве источника. Вы можете удерживать Ctrl и щелкнуть left mouse button чтобы выбрать несколько объектов.
  3. Нажмите Sources на верхней панели, чтобы назначить выбранные объекты в качестве источника.

Теперь вы должны увидеть исходные папки на правой панели.

ОБНОВЛЕНИЕ: По крайней мере, с Pycharm 2019.1.3, это, кажется, изменилось, к счастью, проще.

  1. Из верхней панели перейдите в Файл → Настройки... → Проект: [имя вашего проекта здесь] → Зависимости проекта.
  2. Выберите свой проект, а затем установите флажки для каждого другого проекта, от которого он зависит.

Ответ 2

Что касается PyCharm 2019.2: Файл → Настройки проекта [имя проекта] → Структура проекта → +Add Корень содержимого (справа) → Выберите папку другого проекта.