python - 运行使用 Python 创建的命令行工具

标签 python command-line

我不确定我应该用这个问题寻找什么。

假设我在 Python 中创建了一个脚本来解析命令行参数。我应该怎么做才能使它以与其他 *NIX 工具相同的方式从命令行执行?

例如:代替:

$ python program -s 2000

$ ./program -s 2000

我希望能够执行以下操作:

$ program -s 2000

理想情况下,我希望它能在 Windows 和 OSX 上运行。关于我希望在哪里完成此任务的任何信息?我已经尝试了 shebang,它允许我按照第二个示例执行脚本,但是我找不到太多关于允许它在不指定当前目录的情况下执行的信息。谢谢!

最佳答案

到目前为止,其他答案没有提到的一件事:两者之间的区别

./program ...

program ...

不是您可以在程序内部影响的东西。这是因为 Unixen 默认情况下,在查找可执行文件时不搜索当前目录,只搜索 PATH 上的目录。您需要将 . 添加到 PATH (不推荐,因为这是一个安全问题,而且我实际上不确定它是否有效),添加目录程序是 PATH,或者将程序安装到已经存在的目录中。 (例如,通过将它符号链接(symbolic link)到 /usr/local/bin/。我也将两者结合用于我的实用程序,将 ~/bin/ 放在 PATH 上并放置/链接那里的程序。)

关于python - 运行使用 Python 创建的命令行工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15488483/

相关文章:

windows - 如何在c99模式下编译?

python - GenButton对齐wxpython

python - pip3 install ruamel.yaml[jinja2] 破坏 ruamel.yaml

go - 如何获取Go Flag包以接受--telemetry.addr形式的标志名称

linux - Grep 在不使用管道的情况下获取文件中的字符串

php - 如何在 Heroku App 上运行命令行 PHP 脚本

c++ - 有没有办法在调用 main 函数之前解析命令行选项?

python - 如何查看安装另一个包需要哪些包?

python - 使用 native 字节顺序解释 struct.pack 中的额外填充

python - 使用 spaCy 为 URL 定制标签和词法