我正在从《Learn Python the Hard Way》及其中提到的练习之一中学习 Python 包:
在bin目录下放置一个可以运行的脚本
对我来说,这似乎有点模糊。我不太确定 bin 文件夹中会包含什么样的脚本。搭便车者的包装指南 https://the-hitchhikers-guide-to-packaging.readthedocs.io/ says
将您编写的使用您的包并且您认为对您的用户有用的所有脚本放入 bin 中。如果没有,则删除 bin 目录。
但我仍然想知道里面会写什么样的脚本。所以,我知道这可能听起来像一个愚蠢的问题,但是有人可以给我举一个例子,说明何时以及为什么将“脚本”放入包的 bin 文件夹中?
我自己最近刚刚通过了 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”文件扩展名,则脚本的用户不需要关心运行脚本需要什么解释器。看维基百科 Shebang 文章 http://en.wikipedia.org/wiki/Shebang_%28Unix%29.
-
我运行了以下命令来打包发行版:
python setup.py sdist
-
完成此操作后,我可以通过运行来安装包和脚本
sudo pip install test3-0.1.tar.gz
我担心的一件事是脚本文件的权限。然而,我注意到 distutils 在打包时处理了这个问题(将模式更改为 755 或其他)。
你可以找到我的本示例的整个项目位于 github 上 https://github.com/stevekochscience/Test-python-package-with-script-LPTHW-EX46.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)