web-dev-qa-db-ja.com

Python setuptoolsがインストールされているかどうかを確認するにはどうすればよいですか?

一部の開発者がFabricを簡単に実行できるように、簡単なシェルスクリプトを作成しています。 (私もPythonが初めてです。)Fabricのインストールの一部はpipのインストールであり、pipのインストールの一部はsetuptoolsのインストールです。

Setuptoolsがすでにインストールされているかどうかを検出する簡単な方法はありますか?スクリプトを複数回実行できるようにしたいのですが、既に実行されたものはすべてスキップします。現状では、ez_setup.pyを2回続けて実行すると、2回目の失敗が発生します。

私が考えていた1つのアイデアは、/ Scriptsフォルダーの下にあるeasy_installスクリプトを探すことでした。 sys.executableを使用してPythonルートを推測し、実行可能ファイル名自体を交換します。助言がありますか?

12
Ryan Nelson

これは素晴らしいことではありませんが、機能します。

簡単なpythonスクリプトはチェックを行うことができます

import sys
try:
    import setuptools
except ImportError:
    sys.exit(1)
else:
    sys.exit(0)

OR

try:
    import setuptools
except ImportError:
    print("Not installed.")
else:
    print("Installed.")

次に、呼び出し元のスクリプトで終了コードを確認します

10
grim

このコマンドで試してください。

$ pip list

pipsetuptoolsの両方のバージョンを返します。それ以外の場合は試してください

$ pip install pil

これも機能しない場合は、試してください

$ which easy_install
19
bosari

次のコードをIDLEで実行するだけです。

import easy_install

次の行に進むだけであれば、インストールされていると思います。それが言う場合:

Error: invalid syntax

その後、おそらくインストールされません。私はこれを使ってpipをテストしたのでこれを知っています。また、import pip pipがプリインストールされているかどうかを確認します。 :)

4
Doge Woof

モジュールがインストールされているかどうかをテストするには、これを試してください

>>> import sys
>>> 'setuptools' in sys.modules.keys()
False

次のコマンドラインコマンドを実行して、easy_installおよびsetuptoolsを確認できます。

which easy_install
#finds the path to easy_install if it exists

less path/to/easy_install
#where path/to/easy_install is the output from the above command
#this outputs your easy_install script which will mention the version of setuptools

Easy_install/setuptoolsバンドルがインストールされている場合、上記の2番目のコマンドの出力はおそらく次のようになります。

#EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==0.6c11','console_scripts','easy_install'
2
Brian Zelip

Pythonの新しいバージョンがプリインストールされています。

pip3 list

それが私のためにインストールされたことを識別するのに十分でした

1
ivandov

既にインストールされている場合、これはセットアップツールのバージョンを表示します

$python -c "import sys; import setuptools; print(setuptools.version.__version__)"

0
Ritwika Gautam