【发布时间】:2014-11-12 20:00:22
【问题描述】:
我有一个 python 包,我可以在命令行中使用它
python -m pkgname [args]
我想赋予它原生的行为(在 linux 上)
pkgname [args]
我该怎么做?
【问题讨论】:
标签: python linux command-line
我有一个 python 包,我可以在命令行中使用它
python -m pkgname [args]
我想赋予它原生的行为(在 linux 上)
pkgname [args]
我该怎么做?
【问题讨论】:
标签: python linux command-line
【讨论】:
您可以通过在包文件的开头添加#!/usr/bin/python 来使用shebang 行!然后通过在终端中运行chmod +x pkgname.py 使您的包可执行!
您也可以使用alias 作为替代答案:
alias pkgname="python -m pkgname"
【讨论】:
pkgname而不是pkgname.py?
pkgname 的文件夹,其中包含一个用于cli 解析的__main__.py
$ sudo chmod a+x pkname.py
$ ln -s $(pwd)/pkgname.py /usr/bin/pkgname
这确实与 python 无关(第一行使其可执行...第二行将其映射到路径上的某个位置
确保 pkname.py 的第一行是
#!/usr/bin/env python
【讨论】:
pkgname 是包含__init__.py、__main__.py 和其他脚本的目录,这将如何变化。
#!/usr/bin/env python 如果你的 python 没有碰巧在 /usr/bin/python 中(它可能在 /usr/local/bin 中,它可能是 virtualenv 等,那么它是一个更好的 shebang ...)
你可以写一个setup.py script 来安装这个包。编写好 setup.py 后,您可以在本地安装包
python setup.py install
或以无数种方式(嗯,少于无数种)构建包,然后将它们复制到所需的机器上。现在的打包热是python+pip+wheels,所以
python setup.py bdist_wheel
创建一个名称包含多个细节的文件,查看 dist/*.whl 以找出它是什么。然后在目标机器上
pip intall path/to/the/crazily-named.whl
【讨论】: