3

インストールするとpip(たとえばvenv)、<venv>/bin/pip次のようになります。

#!"<venv>/bin/python"

# -*- coding: utf-8 -*-
import re
import sys

from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

対応するエントリ ポイントは として定義され"pip=pip._internal:main"ます。

私がインストールするときapp(例えば と を使っvenvpip install -e .)<venv>/bin/appは次のようになります:

#!"<venv>/bin/python"
# EASY-INSTALL-ENTRY-SCRIPT: 'app','console_scripts','app'
__requires__ = 'app'
import re
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(
        load_entry_point('app', 'console_scripts', 'app')()
    )

私の対応するエントリポイントは として定義されてい'app=app:main'ます。

なぜこのような違いがあるのでしょうか。pkg_resourcesと同じように、生成されたスクリプトでの使用を避けたいと思いpipます。それを達成する方法は?

4

1 に答える 1