Как я могу установить pip для разработки? - PullRequest
0 голосов
/ 12 января 2019

Я пытаюсь pip install проект GitHub локально, за пределами site-packages, чтобы я мог изменить его и т. Д.

Я добавил -e git+git@github.com:Starcross/django-starcross-gallery.git#egg=gallery к своему requirements.txt, что приводит к тому, что соответствующая часть макета моего проекта выглядит следующим образом:

/home/mat/venv/proj/
└── src
    └── gallery
        ├── admin.py
        ├── apps.py
        ├── build.sh
        ├── django_starcross_gallery.egg-info
        │   ├── dependency_links.txt
        │   ├── PKG-INFO
        │   ├── requires.txt
        │   ├── SOURCES.txt
        │   └── top_level.txt
        ├── forms.py
        ├── __init__.py
        ├── LICENSE
        ├── MANIFEST.in
        ├── models.py
        ├── README.rst
        ├── settings.py
        ├── setup.py
        ├── signals.py
        ├── static
        │   └── ...
        ├── templates
        │   └── ...
        ├── tests
        │   └── ...
        ├── tests.py
        ├── urls.py
        └── views.py

Насколько я вижу, проблема в том, что эти файлы .egg-link и .pth, например, на один уровень слишком глубокие:

lib/python3.6/site-packages/django-starcross-gallery.egg-link:
/home/mat/venv/proj/src/gallery
.

lib/python3.6/site-packages/easy-install.pth:
/home/mat/venv/proj/src/gallery

Я могу все исправить, переместив gallery на уровень глубже, или изменив django-starcross-gallery.egg-link и easy-install.pth, чтобы указать src.

Есть ли параметр конфигурации, который я могу передать в файле require.txt для правильной работы? Или мне нужно настроить макет проекта, чтобы он подходил?

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Как уже упоминалось, лучший способ сделать это - клонировать репо. Это подходит для большинства пакетов, так как pip может создавать расширения и выполнять другие действия во время установки, направленные на использование модуля для производства, а не на редактирование исходного кода.

Чтобы объяснить, почему я выбрал эту структуру, я хотел иметь возможность разрабатывать пакет внутри проекта Django. Как говорят Django docs , приложение должно быть размещено в отдельном каталоге, что позволяет setuptools правильно устанавливать пакет. Я не мог найти способ, который позволил бы этому продолжать работать внутри проекта, следовательно, скрипт компоновки для перемещения файлов в подходящий каталог и создания пакета.

0 голосов
/ 12 января 2019

Поскольку вы хотите изменить его, почему бы просто не клонировать репо. Чтобы ваш переводчик мог найти и использовать его, у вас есть несколько вариантов:

  • изменить ваш sys.path, добавить путь к репо
  • создайте символическую ссылку в каталоге вашего проекта, которая указывает на репо

И, таким образом, вам не нужно pip install каждый раз, когда вы его модифицируете.

...