Как создать пакет deb для скрипта python3?

У меня есть один файл Python, main.py. Я хотел бы иметь возможность сделать из него пакет .deb, а затем запустить main.py, введя имя пакета из терминала. Он написан на Python 3, поэтому имя пакета должно работать:

python3 main.py

Единственная известная мне зависимость - это python3.

Я попытался создать deb с зависимостью python3, а затем запустить python3 packagename, но получаю:

/usr/bin/python3: can't find '__main__' module in 'packagename'

Попытка использовать Debreate для создания пакета не открывается с помощью:

Traceback (most recent call last):
  File "/usr/bin/debreate", line 12, in <module>
    import wx, sys, os, debreate, db, language, shutil
  File "/usr/share/debreate/debreate.py", line 23, in <module>
    import os, sys, wx.lib.dialogs, db, webbrowser, language, shutil, subprocess
  File "/usr/share/debreate/db.py", line 5, in <module>
    import wx, wx.combo, wx.lib.mixins.listctrl as LC, os, sys, language
ImportError: No module named combo
6
задан 23 July 2015 в 18:11

2 ответа

Создать .deb для скрипта python3 очень просто, и требуется лишь несколько изменений в debian / rules и debian / control, если вы знакомы с упаковкой python2.

В двух словах:

  1. Создайте исходный код пакета

    mkdir myscript-0.1
  2. Скопируйте сценарий python3 (или пример сценария ниже) к исходному каталогу

    cp ~/myscript myscript-0.1
    cd myscript-0.1

    Пример сценария:

    #!/usr/bin/python3
    
    if __name__ == '__main__':
        print("Hello world")
  3. Создать скелет упаковки (debian / *)

    dh_make -s --indep --createorig
  4. Удалить файлы примеров

    rm debian/*.ex debian/*.EX debian/README.*
  5. Редактировать debian / control

    Заменить его содержимое следующим текстом:

    Source: myscript
    Section: utils
    Priority: optional
    Maintainer: Name, 
    Build-Depends: debhelper (>= 9), python3
    Standards-Version: 3.9.5
    X-Python3-Version: >= 3.2
    
    Package: myscript
    Architecture: all
    Depends: ${misc:Depends}, ${python3:Depends}
    Description: insert up to 60 chars description
     insert long description, indented with spaces
    
  6. debian / install должен содержать скрипт для установки, а также целевой каталог

    echo myscript usr/bin > debian/install
  7. Редактировать debian / rules

    Заменить его содержание следующим текстом:

    #!/usr/bin/make -f
    
    %:
        dh $@ --with=python3

    Примечание: это табуляция перед dh $@, а не четыре пробела!

  8. Постройте пакет

    debuild -us -uc

Вы получите несколько предупреждений / ошибок Lintian, но ваш пакет готов к использованию:

../myscript_0.1-1_all.deb
0
ответ дан 23 July 2015 в 18:11

За ошибку, с которой вы столкнулись в debreate ,

sudo apt-get install python-wxgtk2.8

source: source of вышеуказанное решение

0
ответ дан 23 July 2015 в 18:11

Другие вопросы по тегам:

Похожие вопросы: