Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pip如何使包可执行?_Python_Ubuntu_Pip - Fatal编程技术网

Python pip如何使包可执行?

Python pip如何使包可执行?,python,ubuntu,pip,Python,Ubuntu,Pip,在Ubuntu14.04上使用sudo pip install fabric安装之后,我可以在控制台中使用fab命令,它实际上是一个可执行脚本/usr/local/bin/fab 据我所知,sudopip安装将把一个包放在/usr/local/lib/python2.7/dist-packages下,我没有找到一些复制操作来将脚本fab放入/usr/local/bin 因此,sudo pip安装fabric时如何将文件fab放入/usr/local/bin?pip不这样做,包setup.py通过

在Ubuntu14.04上使用sudo pip install fabric安装之后,我可以在控制台中使用fab命令,它实际上是一个可执行脚本/usr/local/bin/fab

据我所知,sudopip安装将把一个包放在/usr/local/lib/python2.7/dist-packages下,我没有找到一些复制操作来将脚本fab放入/usr/local/bin

因此,sudo pip安装fabric时如何将文件fab放入/usr/local/bin?

pip不这样做,包setup.py通过。pip所做的就是找到该包,下载它并在该包中运行python setup.py install来安装它

setuptools有一个任意的配置,可以插入Python代码中查找这些设置。一个这样的入口点是console_脚本入口点,它命名命令和用于运行它们的Python module plus函数。政府有:

entry_points={
    'console_scripts': [
        'fab = fabric.main:main',
    ]
},
这会告诉setuptools创建一个fab命令,在调用fabric.main模块时,该命令将运行该模块中的main函数

请参阅setuptools文档中的。

pip不执行此操作,而是通过软件包setup.py执行此操作。pip所做的就是找到该包,下载它并在该包中运行python setup.py install来安装它

setuptools有一个任意的配置,可以插入Python代码中查找这些设置。一个这样的入口点是console_脚本入口点,它命名命令和用于运行它们的Python module plus函数。政府有:

entry_points={
    'console_scripts': [
        'fab = fabric.main:main',
    ]
},
这会告诉setuptools创建一个fab命令,在调用fabric.main模块时,该命令将运行该模块中的main函数


请参阅setuptools文档中的。

未提及控制台脚本的放置位置。所以/usr/loca/bin是在setuptools中定义的,不能由包开发人员配置,对吗?@Chad:它是由sys.exec_prefx,IIRC定义的,您将python二进制文件安装到其中的位置。@Chad:您可以创建一个virtualenv并将Fabric安装到其中;然后使用virtualenv bin/path。@Chad:但是,不,包开发人员不能说明控制台脚本安装在哪里,不。没有提到控制台脚本放在哪里。所以/usr/loca/bin是在setuptools中定义的,不能由包开发人员配置,对吗?@Chad:它是由sys.exec_prefx,IIRC定义的,您将python二进制文件安装到其中的位置。@Chad:您可以创建一个virtualenv并将Fabric安装到其中;然后使用virtualenv bin/path。@Chad:但是不,包开发人员不能说明控制台脚本安装在哪里,不。