Como criar um pacote deb de um diretório do projeto python que também precisa de outro pacote / comando para funcionar?

6

Como faço para criar um pacote deb para distribuição de um diretório do projeto python no Ubuntu 16.04?

Eu pesquisei e o mais próximo que encontrei é isso

O que eu tenho agora é um diretório que consiste em um servidor REST escrito em python. Eu quero converter esse diretório para um pacote deb para que a pessoa que obtém o pacote possa ser facilmente instalada em seu computador para executar o servidor REST.

O detalhe da estrutura de diretórios é como abaixo

server
  |--api-----------------
  |                |--__init__.py
  |--main.py       |--v1---------------
  |                                |---__init__.py
  |--__init__.py                   |---resources-------
                                                |
                                                |---a.py
                                                |---b.py
                                                |---tasks.py

Normalmente, executo este servidor como python main.py depois de executar um celery worker digitando celery -A server.api.v1.resources.tasks worker --loglevel=INFO

O que eu quero perguntar agora é uma maneira de converter este projeto em deb packages para distribuição? Como eu também uso celery worker para suportar o servidor, é possível converter esse diretório junto com o comando para o worker? O que quero dizer aqui é que quando alguém executa o pacote deb em seu computador do Ubuntu, o servidor pode ser executado junto com o worker.

    
por Fang 14.09.2017 / 12:47

1 resposta

1

Experimente fpm .

Instalando a partir dos documentos citados:

$ sudo apt-get install ruby ruby-dev rubygems build-essential 
% sudo gem install --no-ri --no-rdoc fpm 

Após o fpm ser instalado:

$ cd server
$ fpm -s python -t deb .

Algumas personalizações para sua situação específica. Você pode adicionar "aipo" a install_requires de setup.py . Também as opções do fpm --python-install-bin e --python-install-lib podem ser usadas para especificar onde os arquivos binários e de bibliotecas devem ir. Outras documentações da fonte python estão localizadas bem .

Você também pode precisar criar algum tipo de script personalizado para dar o pontapé inicial.

    
por rocky 25.09.2017 / 02:38