什么脚本会进入Python包的bin文件夹?

Aco*_*r83 18 python directory package bin

我正在从学习Python艰难的方式学习Python包,其中一个练习它说:

将脚本放在可以运行的bin目录中

对我来说,这看起来有点模糊.我不确定哪种脚本会进入bin文件夹.Hitchhiker的包装指南

将你编写过的任何使用你的软件包的脚本放入bin中,你认为这些脚本对你的用户有用.如果您没有,请删除bin目录.

但是我仍然想知道那里会有什么样的剧本.所以,我知道它可能听起来像一个愚蠢的问题,但是有人可以给我一个例子说明何时,以及为什么会在其包的bin文件夹中放入"脚本"?

Ste*_*och 20

我最近刚刚在LPTHW中完成了Ex46.和你一样,我对脚本感到困惑.如果另一个答案对你来说太高级了,我最后只是简单地写了一个"hello world"脚本:

#!/usr/bin/env python

from test3 import printstring
printstring.printstring("test script working")
print "test over"
Run Code Online (Sandbox Code Playgroud)

我将该文件命名为testscript3.py(*注意,我后来才知道,如果它是一个我想看起来像系统命令的真实脚本,那么放弃.py文件扩展名会更方便)

我的文件test3.py是这样的:

def printstring(s='you did not provide string'):
    print s
Run Code Online (Sandbox Code Playgroud)

这是我在尝试使这个过程工作时学到的一些新手:

  • #!符号有时发音为shebang,简单的解释是该行上的命令告诉shell使用python来运行脚本.如果您不使用".py"文件扩展名,那么脚本的用户无需关心运行脚本所需的解释器.请参阅wikipedia shebang文章.

  • 我运行以下命令来打包发行版:

    python setup.py sdist

  • 在这之后,我能够通过运行来安装包和脚本

    sudo pip install test3-0.1.tar.gz

  • 我担心的一件事是脚本文件的权限.但是,我注意到distutils在打包时处理了这个问题(将模式改为755或其他).

你可以在github上找到这个例子的整个项目.


小智 3

例如Django的项目创建Scrapy的项目创建、django-admin.py和scrapy都是bin文件夹中的脚本。

通过检查几乎基于 python 的工具,您可以获得更多示例。