pip如何使一个包可以执行?

Cha*_*had 1 python ubuntu pip

安装完成后面料sudo pip install fabric在Ubuntu 14.04,我可以使用fab控制台命令,它实际上是一个可执行的脚本"在/ usr/local/bin目录/ FAB".

据我所知,sudo pip install将放一个包/usr/local/lib/python2.7/dist-packages,我没有在fabric/setup.py中找到一些复制操作,将脚本"fab"放入"/ usr/local/bin".

那么如何以及何时sudo pip install fabric将文件"fab"放入"/ usr/local/bin"?

Mar*_*ers 5

pip不这样做,包setup.py(通过setuptools).一切pip都是找到包,下载它并python setup.py install在该包中运行以安装它.

setuptools有一个入口点概念,任意配置插入Python代码寻找这些.一个这样的入口点是console_scripts入口点,它命名命令和Python模块以及用于运行它们的函数.setup.pyFabric文件有:

entry_points={
    'console_scripts': [
        'fab = fabric.main:main',
    ]
},
Run Code Online (Sandbox Code Playgroud)

这告诉setuptools您创建一个fab命令,当您调用它时,它将main()fabric.main模块中运行该函数.

请参阅自动脚本创建部分setuptools的文档.