pip установить редактируемую рабочую директорию в пользовательский путь с помощью require.txt - PullRequest
1 голос
/ 24 сентября 2019

Короткая версия: Можно ли использовать параметр -e в файле needs.txt с путем, куда следует установить редактируемый пакет?


Первый подход

needs.txt:

-e git+https://github.com/snake-soft/imap-storage.git#egg=imap-storage

Pro: Автоматическая установка

Против: Редактируемый каталог внутрипапка virtualenv src (не в рабочей области)


Второй подход (Изменить: не используйте это, пока не узнаете, что делаете, посмотрите внизу)

Если я клонирую репо и установил его так (активирован virtualenv):

cd /home/user/workspace
git clone https://github.com/snake-soft/imap-storage.git
pip install -e .

Дает структуру, которую я хочу:

workspace
├── imap-storage
├── django-project  # uses imap-storage module

У меня есть чтоя хочу.Репозиторий (imap-storage) лежит параллельно с django-проектом, который его использует.Его можно импортировать, поскольку он установлен внутри virtualenv.

Pro: Редактируемый каталог находится внутри моего рабочего пространства

Против: Не автоматизирован, не интуитивно понятен


Цель

  • pip install -r needs.txt для установки модуля из git (как первый подход)
  • Модульв pythonpath virtualenv -> importable
  • Редактируемый рабочий каталог модуля находится в моей рабочей области (как второй подход)

PS: Или я совершенно не правдумаешь и должен пойти на что-то совершенно другое?

1 Ответ

0 голосов
/ 28 сентября 2019

Почему я задал такой сумасшедший вопрос?

Я думал, что смогу немного облегчить свою жизнь, когда лежат оба пакета (и проект Django, использующий этот пакет)редактируемые внутри моего рабочего пространства, потому что я работаю над ними параллельно.

Мое резюме

Я попробовал это немного со вторым подходом, и в конце я решилпредпочитаю первый подход.

Причина

При обоих методах pydev не будет отображать его как установленный пакет.

Когда оба метода смешиваются одинаково:

  1. установить пакет через needs.txt (с ключом -e)
  2. удалить его
  3. клонировать его (например, *)1028 * ~ / workspace / )
  4. установите его с помощью 'pip install -e.'внутри пакета

Тогда вы окажетесь в плохой ситуации.Каталог virtualenv / src / не будет удален и будет распознан как источник для пакета внутри pydev.При запуске экземпляра Django, использующего этот пакет, он запускает код пакета из ' ~ / workspace / '.

Предложение

ИспользованиеПри первом подходе импортируйте этот исходный каталог как проект в pydev ('virtualenv / src /') и создайте ссылку в выбранном вами файловом менеджере.Это избавит вас от сложной ошибки.

...