pip如何使包可执行?

时间:2016-04-15 07:45:36

标签: python ubuntu pip

在Ubuntu 14.04上使用sudo pip install fabric安装Fabric后,我可以在控制台中使用fab命令,这实际上是一个可执行脚本“/ usr / local / bin / fab”。 / p>

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

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

1 个答案:

答案 0 :(得分:5)

pip没有这样做,包setup.py会这样做(通过setuptools library)。所有pip确实找到了包,下载并在该包中运行python setup.py install进行安装。

setuptoolsconcept of entry points个任意配置,可以插入寻找这些内容的Python代码。一个这样的入口点是console_scripts入口点,它命名命令和Python模块以及用于运行它们的函数。 setup.py file for Fabric有这个:

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

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

请参阅setuptools文档中的Automatic Script Creation section