3

だからあなたはあなたが実行して簡単に何かをインストールするために使用することができ、このようなのpythonのDistutils Win32バージョンの質問

PIL-1.1.6.win32-py2.5.exe 

としてファイルを作成するのdistutilsを使用することができます。ただし、インストールにはユーザー入力が必要です(「OK」を3回クリックする必要があります)。私は簡単にインストール可能なWindows版を作成したいのですが、これはユーザからの入力を必要としないcmd行プログラムとして実行できます。これは可能ですか?これらの.exeファイルはすでに実行していますが、動作するにはそれらをマジックのcmd行引数に渡す必要がありますか?

答えて

0

「setup.py bdist_wininst」を実行して実行可能ファイルを取得します。 "setup.py bdist_dumb"を実行すると、もっと簡単なことができます。これにより、Pythonがインストールされているドライブのルートに解凍された.zipファイルが作成されます。ただし、作成したマシンと同じディレクトリにインストールされていれば、ライブラリがインストールされます。

Windowsでコマンドラインユーティリティを使用して解凍ができるかどうかわかりません。私は通常CygwinをすべてのWindowsボックスにインストールしていますが、.zipで出荷するのは簡単です。

0

単純なバッチファイルを使ってsetuptoolsのインストールスクリプトを呼び出してeggファイルパスを引数として渡す前に、これを行っています。唯一の問題は、スクリプトがPATHにあることを確認する必要があることです。

Python自体がPATHにあると仮定すると、pythonスクリプトでこのようなものを試してみることができます(これはinstall.pyまたはsomesuchと呼ばれます)。

import sys 
from pkg_resources import load_entry_point 

def install_egg(egg_file_path): 
    sys.argv[1] = egg_file_path 
    easy_install = load_entry_point(
     'setuptools==0.6c9', 
     'console_scripts', 
     'easy_install' 
    ) 
    easy_install() 

if __name__ == "__main__": 
    install_egg("PIL-1.1.6.win32-py2.5.egg") 

これは、「easy_install.py」スクリプトと基本的に同じです。そのスクリプトのエントリーポイントを見つけて、最初の引数があなたのeggファイルを指すようにsys.argvを設定します。それはあなたのために残りをする必要があります。それはまた別の代替言及

:HTHは

1

このようなスタブインストーラ修正するためのアイデアを説明this postを参照してください

代わりsetup.py bdist_msiを使用して、MSIパッケージが生成されます、それを無人インストールすることができます