Skip to main content
 首页 » 编程设计

python之pip如何使包可执行

2025年05月04日25mfryf

安装后Fabric在 Ubuntu 14.04 上使用 sudo pip install fabric,我可以在控制台中使用 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”?

请您参考如下方法:

pip 不会这样做,包 setup.py 会(通过 setuptools library )。 pip 所做的只是找到包、下载它并在该包中运行 python setup.py install 以安装它。

setuptools 有一个 concept of entry points ,任意配置以插入到寻找这些的 Python 代码中。一个这样的入口 pip 是 console_scripts 入口 pip ,它命名命令和 Python 模块加上用于运行它们的函数。 setup.py file for Fabric有这个:

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

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

参见 Automatic Script Creation section在 setuptools 文档中。