我正在学习思科Python艰难之路中的Python包,以及其中的一个练习:
对我来说,这看起来有点模糊。我不确定哪种脚本会进入bin文件夹。 The Hitchhiker's Guide to Packaging说将脚本放在可以运行的bin目录中
将您编写过的任何使用您的软件包的脚本放入bin中,您认为这些脚本对您的用户有用。如果您没有,请删除bin目录。
但是我仍然想知道那里会有什么样的剧本。所以,我知道它可能听起来像一个愚蠢的问题,但有人可以给我一个例子说明何时,以及为什么人们会将“脚本”放在他们的包的bin文件夹中?
答案 0 :(得分:20)
我最近刚刚在LPTHW中完成了Ex46。和你一样,我对脚本感到困惑。如果另一个答案对你来说太高级了,我最后只是简单地写了一个“hello world”脚本:
#!/usr/bin/env python
from test3 import printstring
printstring.printstring("test script working")
print "test over"
我将该文件命名为testscript3.py(*注意,我后来才知道,如果它是一个我想看起来像系统命令的真实脚本,那么放弃.py文件扩展名会更方便)
我的文件test3.py是这样的:
def printstring(s='you did not provide string'):
print s
这是我在尝试让这个过程发挥作用时学到的一些新手:
#!符号有时发音为shebang,简单的解释是该行上的命令告诉shell使用python来运行脚本。如果您不使用“.py”文件扩展名,那么脚本的用户无需关心运行脚本所需的解释器。请参阅wikipedia shebang article。
我运行以下命令打包发行版:
python setup.py sdist
执行此操作后,我可以通过运行
来安装软件包和脚本sudo pip install test3-0.1.tar.gz
我担心的一件事是脚本文件的权限。但是,我注意到distutils在打包时会处理这个问题(将模式改为755或其他)。
答案 1 :(得分:2)
例如Django's project creating,Scrapy's project creating,django-admin.py和scrapy都是bin文件夹中的脚本。
通过检查几乎基于python的工具,您可以获得更多示例。