如何在snap应用中为python项目定制自己的python版本

316 阅读1分钟

我们知道对于python项目来说,我们只需要在我们的snapcraft.yaml中指定plugin为python它即可为python项目下载在snapcraft中指定的python的版本。但是对于有一些项目来说,我们的开发者可能需要一个特定的python的版本,那么我们怎么来实现这个功能呢?在今天的教程中,我们来介绍在snapcraft 2.27中所增添的一个新的功能。

\

我们首先来看一下我做的一个项目:

github.com/liu-xiao-gu…

snapcraft.yaml

name: python36
version: '0.1' 
summary: This is a simple example not using python plugin
description: |
  This is a python3 example

grade: stable 
confinement: strict

apps:
  python36:
    command: helloworld_in_python
  python-version:
    command: python3 --version

parts:
  my-python-app:
    source: https://github.com/liu-xiao-guo/python-helloworld.git
    plugin: python
    after: [python]
  python:
    source: https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
    plugin: autotools
    configflags: [--prefix=/usr]
    build-packages: [libssl-dev]
    prime:
      - -usr/include


在这里,针对我们的python项目,它指定了在我们项目python part中所定义的python。这个python的版本是直接从网上直接进行下载的。

\

我们可以直接打包我们的应用,并并运行我们的应用:

\

$ python36
Hello, world


显然我们的python是可以正常工作的。我们可以通过命令python36.python-version命令来检查我们的python的版本:

\

$ python36.python-version 
Python 3.6.0


它显示了,我们目前正在运行的python的版本3.6。它就是我们在snapcraft中所下载的版本。