我在 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 目录中。