我在 Ubuntu 17.04 上安装的 3.24.1 上安装了 GNOME Builder。我有一个功能性的 Django 项目和一个相关的 virtualenv。(Django 1.11,Python 3)
如何配置 Builder,以便当我单击 Run 时它会manage.py runserver在 virtualenv 中调用?(理想情况下,我也希望能够运行其他manage.py功能,例如manage.py collectstatic。)
我在 Ubuntu 17.04 上安装的 3.24.1 上安装了 GNOME Builder。我有一个功能性的 Django 项目和一个相关的 virtualenv。(Django 1.11,Python 3)
如何配置 Builder,以便当我单击 Run 时它会manage.py runserver在 virtualenv 中调用?(理想情况下,我也希望能够运行其他manage.py功能,例如manage.py collectstatic。)
这实际上是不可能的,因为 Gnome-Builder 与 flatpak 紧密集成。据我所知,“主机系统构建系统”仅支持自动检测到的运行目标,并且仅支持其中一个。
但是,如果您创建一个 flatpak json 清单,您可以将命令设置为command在清单的变量中运行json- 尽管可能不是您想要的一切。因为这意味着应用程序在 flatpak 沙箱中运行。
为此,您可以使用名为 的 gnome-builder 创建一个新的 python gnome 应用程序djangoproj。这将生成一个使用介子构建系统的项目和一个org.gnome.djangoproj.json. 接下来是删除 gnome 应用程序 - 或者您只是忽略它并添加您的 Django 依赖项。
在本机模块之前添加所需的模块。对于 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.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启动后,否则程序日志会出现在一个交互式 shell 中。在那里,您可以使用目录中包含的 Django 探索新创建的 flatpak /app/。如果你想运行 Django 应用程序,你会这样做:
$ python3 /app/share/djangoproj2/djangoproj2/manage.py runserver
您也可以command在文件的变量中写入此命令,json以便在按下“播放”按钮时直接启动它。
所有其他命令也可以工作 - 但是请记住,环境位于 flatpak 中,并且在每次重建时都会重新创建......所以没有任何需要持久的东西可以保存在 flatpak 目录中。