web-dev-qa-db-ja.com

python3スクリプトのdebパッケージを作成する方法は?

Main.pyというPythonファイルが1つあります。それから.debパッケージを作成し、ターミナルからパッケージ名を入力してmain.pyを実行できるようにしたいと思います。 Python 3で記述されているため、パッケージ名は次のように実行されます。

python3 main.py

私が知っている唯一の依存関係はpython3です。

私はpython3の依存関係を持つdebを作成してから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
meecoder

Python3スクリプト用の.debの作成は非常に簡単で、python2のパッケージングに慣れている場合は、debian/rulesとdebian/controlを少し変更するだけで済みます。

手短に:

  1. パッケージソースディレクトリを作成する

    mkdir myscript-0.1
  2. Python3スクリプト(または以下のサンプルスクリプト)をソースディレクトリにコピーします。

    cp ~/myscript myscript-0.1
    cd myscript-0.1

    サンプルスクリプト:

    #!/usr/bin/python3
    
    if __== '__main__':
        print("Hello world")
  3. パッケージスケルトンを作成します(debian/*)

    dh_make -s --indep --createorig
  4. サンプルファイルを削除する

    rm debian/*.ex debian/*.EX debian/README.*
  5. Debian /コントロールの編集

    その内容を次のテキストに置き換えます。

    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 $@の前のタブで、4つのスペースではありません!

  8. パッケージをビルドする

    debuild -us -uc

Lintianの警告/エラーがいくつか表示されますが、パッケージはすぐに使用できます。

../myscript_0.1-1_all.deb
10
Sylvain Pineau

debreateで発生したエラーについては、

Sudo apt-get install python-wxgtk2.8

ソース: 上記のソリューションのソース

0
Sourav Mishra