如何从还需要其他包/命令才能工作的 python 项目目录创建 deb 包?

Fan*_*ang 6 server package-management python

如何从 Ubuntu 16.04 上的 python 项目目录创建用于分发的 deb 包?

我确实搜索过它,我找到的最接近的是这个

我现在拥有的是一个目录,其中包含一个用 python 编写的 REST 服务器。我想将此目录转换为 deb 包,以便获得该包的人可以轻松地将其安装在他们的计算机上以运行 REST 服务器。

目录结构的详细信息如下

server
  |--api-----------------
  |                |--__init__.py
  |--main.py       |--v1---------------
  |                                |---__init__.py
  |--__init__.py                   |---resources-------
                                                |
                                                |---a.py
                                                |---b.py
                                                |---tasks.py
Run Code Online (Sandbox Code Playgroud)

通常,我python main.pycelery通过键入运行工作程序后运行此服务器celery -A server.api.v1.resources.tasks worker --loglevel=INFO

我现在想问一下有没有办法把这个项目转成deb包分发?由于我也使用celeryworker 来支持服务器,是否可以将此目录与 worker 的命令一起转换?我的意思是,当有人deb在他/她的 ubuntu 计算机上运行包时,服务器可以与工作人员一起运行。

roc*_*cky 1

尝试fpm

从引用的文档安装:

$ sudo apt-get install ruby ruby-dev rubygems build-essential 
% sudo gem install --no-ri --no-rdoc fpm 
Run Code Online (Sandbox Code Playgroud)

fpm安装后:

$ cd server
$ fpm -s python -t deb .
Run Code Online (Sandbox Code Playgroud)

针对您的特定情况进行一些定制。您可以将“芹菜”添加到install_requiresof中setup.py。fpm 选项也--python-install-bin--python-install-lib用于指定二进制文件和库文件的位置。python可以找到有关源代码的更多文档。

您可能还需要创建某种自定义脚本来启动此操作。