Как я могу вызвать Django manage.py из GNOME Builder?
У меня есть GNOME Builder, установленный на 3.24.1, установленный на Ubuntu 17.04. У меня есть функциональный проект Django и связанный с ним virtualenv. (Джанго 1.11, Питон 3)
Как настроить Builder, чтобы при нажатии кнопки "Выполнить" он вызывал manage.py runserver
в виртуальности? (В идеале я хотел бы иметь возможность запускать другие manage.py
функции тоже, как manage.py collectstatic
.)
1 ответ
На самом деле это невозможно, поскольку Gnome-Builder тесно интегрирован с flatpak. Насколько я знаю, "hostssystem buildsystem" поддерживает только автоматически определенные цели запуска и только одну из них.
Тем не менее, если вы создаете манифест FlatPak JSON, вы можете установить команду для запуска в command
переменная json
манифест - хотя, вероятно, не все, что вы хотите. Поскольку это означает, что приложение запускается в песочнице flatpak.
Настроить
Для этого вы можете создать новое приложение Python для GNOME с помощью GNOME-Builder djangoproj
, Это создаст проект, который использует мезонную систему сборки и org.gnome.djangoproj.json
, Следующим шагом будет удаление приложения gnome - или вы просто проигнорируете его и добавите свои зависимости Django.
Добавьте необходимые модули перед родными модулями. Для Джанго это:
[…]
"modules" : [
{
"name": "python3-Django",
"buildsystem": "simple",
"build-commands": [
"pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} Django"
],
"sources": [
{
"type": "file",
"url": "https://pypi.python.org/packages/1b/50/4cdc62fc0753595fc16c8f722a89740f487c6e5670c644eb8983946777be/pytz-2018.3.tar.gz",
"sha256": "410bcd1d6409026fbaa65d9ed33bf6dd8b1e94a499e32168acfc7b332e4095c0"
},
{
"type": "file",
"url": "https://pypi.python.org/packages/54/59/4987ae4a4a8be8507af1b213e75a449c05939ab1e0f62b5e90ccea2b51c3/Django-2.0.3.tar.gz",
"sha256": "769f212ffd5762f72c764fa648fca3b7f7dd4ec27407198b68e7c4abf4609fd0"
}
]
},
{
"name" : "djangoproj",
"buildsystem" : "meson",
[…]
Если у вас есть дополнительные зависимости, есть удобный инструмент для генерации необходимых строк json: https://github.com/flatpak/flatpak-builder-tools/tree/master/pip
Теперь вы можете добавить файлы проекта Django, используя хост-систему.
django-admin startproject sample
Мезон должен знать о новых файлах, поэтому просто добавьте subdir('sample')
в корневой каталог meson и создайте новые файлы meson в подкаталогах. meson.build
в каталоге с примерами это выглядит для меня. для sample/sample
каталог, вам нужно настроить moduledir
и djangoproj_sources
pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name())
moduledir = join_paths(pkgdatadir, 'djangoproj')
python3 = import('python3')
conf = configuration_data()
conf.set('PYTHON', python3.find_python().path())
conf.set('VERSION', meson.project_version())
conf.set('localedir', join_paths(get_option('prefix'), get_option('localedir')))
conf.set('pkgdatadir', pkgdatadir)
subdir('sample')
djangoproj_sources = [
'manage.py',
]
install_data(djangoproj_sources, install_dir: moduledir)
Теперь вы можете установить command
в org.gnome.Djangoproj.json
в bash
и после нажатия кнопки запуска в окне, где в противном случае появляются логи программы, появляется интерактивная оболочка. Там вы можете исследовать свой недавно созданный flatpak с Django, включенным в /app/
каталог. Если вы хотите запустить приложение Django, вы должны сделать:
$ python3 /app/share/djangoproj2/djangoproj2/manage.py runserver
Вы также можете написать эту команду в command
переменная json
файл, чтобы запустить его непосредственно при нажатии кнопки "Play".
Все остальные команды тоже работают, но имейте в виду, что среда находится в flatpak и воссоздается при каждой перестройке... Так что ничего, что нужно сохранить, нельзя сохранить в каталоге flatpak.