Como adicionar uma dependencia do pacote python a um pacote debian?

2

Eu tenho um pacote debian cujo conteúdo requer que um determinado pacote python seja instalado com pip installed <python-package> .

Como devo configurar precisamente meu pacote .deb (provavelmente através de debian/rules ) para que <python-package> seja instalado com o pacote (ou seja, ao lançar dpkg -i mypackage.deb )?

    
por user123456 26.02.2017 / 12:23

2 respostas

1

Isso não é trivial de se fazer. Existem várias possibilidades descritas em esta questão e suas respostas, mas como @FerencWagner disse, a melhor e mais correta solução é re-empacotar todas as dependências como pacotes debian.

Alguns pacotes python já estão disponíveis como pacotes debian, como jsonpickle:

$ apt-cache search jsonpickle
python-jsonpickle - Python library for serializing object graphs into JSON (Python 2)
python-jsonpickle-doc - Python library for serializing object graphs into JSON (documentation)
python3-jsonpickle - Python library for serializing object graphs into JSON (Python 3)

Então você deve procurá-los primeiro, talvez você não precise fazer nada sozinho.

    
por 06.12.2017 / 11:51
0

Aqui está um guia de como empacotar e implantar seu aplicativo python3 do host para outra máquina linux (vamos chamá-lo de machine1).

Primeiramente, presumo que seu aplicativo python esteja construído corretamente com um setup.py válido aqui é o exemplo que usei veja o link .

  1. Instalando suas dependências do aplicativo python3:

    1.1. Vá para o diretório "foo" onde o setup.py está localizado e execute:

    $ cd path_to_foo/foo/
    $ python3 setup.py sdist bdist_wheel
    

    1.2. Ele criará uma pasta "dist" e copiará foo-0.1-py3-none-any.whl file para machine1

    1.3. Faça o login na máquina1 e vá para o caminho do arquivo whl e execute:

    $ cd path_to_whl_file/
    $ pip3 install foo-0.1-py3-none-any.whl
    
  2. Instalando seu pacote de aplicativos python3

    2.1. Primeiro precisamos instalar o fpm (na sua máquina de desenvolvimento de host) veja aqui para obter mais informações Como usar FPM para criar facilmente pacotes em vários formatos .

    $ sudo apt-get update
    $ sudo apt-get install ruby-dev build-essential
    $ sudo gem install fpm
    

    2.2. em seguida, vá para o diretório que contém o aplicativo foo e execute:

    $ sudo fpm --python-bin python3 --python-pip pip3 \
      --python-package-name-prefix python3 --no-python-dependencies \
      --python-install-bin /usr/bin -s python -t deb \
      path_to_foo_application/
    

    Deve criar o pacote python3-foo_0.1_all.deb

    2.3. Faça o login na máquina1 e vá para o caminho do pacote deb e instale-o

    $ cd path_to_deb_package/
    $ sudo dpkg -i python3-foo-_0.1_all.deb
    
  3. É agora que você pode executar o aplicativo de qualquer lugar (o aplicativo é colocado em /usr/bin/ )

Espero que tenha respondido à sua pergunta e ajudado na criação / criação de pacotes python3.

NOTA: funcionou para mim no Ubuntu, Debian e Raspbian.

    
por 02.08.2018 / 18:11