2016-04-15 4 views
1

をUbuntu 14.04にインストールした後、fabコマンドをコンソールに使用できます。これは実際には実行可能なスクリプト "/ usr/local/bin/fab"です。ピップはどのようにパッケージを実行可能にしますか?

私の知る限りでは、sudo pip install/usr/local/lib/python2.7/dist-packages下のパッケージを置く、と私は「を/ usr/local/binに」に「FAB」スクリプトを置くためにfabric/setup.pyにいくつかのコピー操作を見つけることができませんでした。

sudo pip install fabricどのようにしてファイル "fab"を "/ usr/local/bin"に入れますか?

答えて

5

pipパッケージsetup.pyは(setuptools libraryを介して)行います。 pipはすべてパッケージを見つけてダウンロードし、python setup.py installをそのパッケージにインストールしてインストールします。

setuptoolsは、concept of entry pointsです。これらを探してPythonコードにプラグインする任意の設定です。そのようなエントリポイントの1つは、コマンドとその実行に使用されるPythonモジュールの機能に名前を付けるconsole_scriptsエントリポイントです。 setup.py file for Fabricがこれを持っている:

entry_points={ 
    'console_scripts': [ 
     'fab = fabric.main:main', 
    ] 
}, 

これは、あなたがそれを呼び出すときfabric.mainモジュールでmain()機能を実行しますfabコマンドを作成するためにsetuptoolsに指示します。

setuptoolsのマニュアルのAutomatic Script Creation sectionを参照してください。

+0

[自動スクリプト作成セクション](https://pythonhosted.org/setuptools/setuptools.html#automatic-script-creation)には、コンソールスクリプトの配置場所については言及されていません。 "/ usr/loca/bin"はsetuptoolsで定義されており、パッケージ開発者が設定することはできません。そうですか? – Chad

+1

@Chad: 'sys.exec_prefx'、IIRC、' python'バイナリをインストールした場所で定義されています。 –

+1

@Chad:いつでもvirtualenvを作成してFabricをインストールすることができます。 virtualenv 'bin /'パスが使用されます。 –

関連する問題