これは非常に開かれた質問のように聞こえるかもしれませんが、私はpython愛好家であり、この開発の世界ではかなり新しいです。私はpythonスクリプトこのスクリプトを使用し、技術的な考え方を持たないエンドユーザーのみが使用できるようにパッケージ化したいと思います。彼らが与える入力と彼らが得る出力で。
Jupyter Notebookを使用してこの複雑なコードを開発しましたが、このコードをパッケージ化または展開する方法について知りたいので、エンドユーザーは、それがどのように機能するかを見ずに使用することができます。
誰でもそれを行う方法のアイデアを手伝ってくれますか?オープンソースであるものが優先されます。
ありがとう
Pythonスクリプトまたはモデル:を展開するいくつかの方法を提案して、この質問をまとめたいと思います。
見つけたらさらにコンテンツを追加していきますが、DOCKERを使用してそれを行う最善の方法だと思います。お役に立てれば。
PyInstaller は強力です opensource pythonプロジェクトのクロスプラットフォーム展開/配布のためのツール。
*注意:Jupyter NotebookをPyInstallerで配布した経験はありませんが、これはもっともらしいと思われます guide 。
Pypiを使用してインストールします。
pip install pyinstaller
コンソールなしのコードの配布は次のように簡単にできます。
pyinstaller --noconsole script.py
次に、作業ディレクトリのdistフォルダーの下に.exe(Window)があります。
あなたはPythonコードをフレンドリーな方法でユーザーにデプロイしたい。それはGUIを意味すると思う。
これを行う1つの方法は、実行時にPythonプログラムにGUIインターフェースを表示させることです。システムにPythonがインストールされ、.pyが関連付けられている場合ファイルがある場合、ユーザーは.pyファイルをダブルクリックして、.EXEをクリックしたように見えるように実行できます。
GUIの必要性は最小限のようです。お探しのものを提供する新しいパッケージ PySimpleGUI が最近リリースされました。この記事を参照して、探しているものに合うかどうかを確認してください。 https://opensource.com/article/18/8/pysimplegui
PySimpleGUIパッケージへの貢献者の1人が、単一の.EXEファイルを作成して、PythonプログラムがGUIに直接起動するため、他のWindowsプログラムのように見えるようにできることを発見しました。
これを行うには、別の回答で指示されているように、PyInstallerパッケージを使用します。
pyinstaller -wF your_PySimpleGUI_based_program.py
GUIがないと仮定すると、バッチ(.bat)ファイルを使用して、提供された入力でスクリプトを呼び出します。
your_script.bat:
set VAR_1=this
set VAR_2=that
python your_script.py %VAR_1% %VAR_2%
次に、pythonスクリプトでこれらの引数を取得します
sys.argv[0] sys.argv[1]
最終ユーザーの場合、ダブルクリックするだけです!
私はあなたがイデアを得たことを願っています
sparrow を使用して、スクリプトをエンドユーザーに配信します。 It Nice Works with Pythonスクリプトも。
基本的には、 requirements as requirements.txt
ファイルを作成し、スクリプトにstory.py
、スクリプト内の入力パラメーターを次のように処理できます。
from outthentic import *
foo = config()['main']['foo']
bar = config()['main']['bar']
次に、スクリプトをSparrowHubにアップロードします。
$ nano sparrow.json
{
"name": "my-script",
"version": "0.1.0",
"description" : "this is my script",
}
$ ls -1
story.py
requirements.txt
sparrow.json
$ sparrow plg upload
最後に、エンドユーザーは次のようにスクリプトを使用します。
$ sparrow plg install my-script
$ sparrow plg run my-script --param main.foo=1 --param main.bar=2
PS。開示私はツールの著者です。スクリプトのパッケージ化に関してサポートが必要な場合はお知らせください。