【问题标题】:What scripts would go into a bin folder of a Python package?哪些脚本会进入 Python 包的 bin 文件夹?
【发布时间】:2012-06-03 06:56:47
【问题描述】:

我正在从 Learn Python the Hard Way 中学习有关 Python 包的知识,以及它所说的其中一个练习:

在bin目录下放一个可以运行的脚本

对我来说,这似乎有点模糊。我不太确定 bin 文件夹中会包含什么样的脚本。 The Hitchhiker's Guide to Packaging

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

但我仍然想知道那里会出现什么样的脚本。所以,我知道这听起来像是一个愚蠢的问题,但是有人可以给我一个例子,说明何时以及为什么将“脚本”放在他们包的 bin 文件夹中?

【问题讨论】:

    标签: python package directory bin


    【解决方案1】:

    我最近刚通过 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 或其他)。

    你可以找到我的whole project for this example on github

    【讨论】:

      【解决方案2】:

      例如Django's project creatingScrapy's project creating、django-admin.py 和 scrapy 都是 bin 文件夹中的脚本。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-04-29
        • 1970-01-01
        • 2012-10-21
        • 2014-03-02
        • 1970-01-01
        • 2012-06-23
        • 1970-01-01
        相关资源
        最近更新 更多