我有一个包含多个文件的python项目和一个使用argparse解析参数的cmd.py,在其他文件中有关键功能。我想做的是:我想这样做,以便在命令行中输入cmd -p hello.txt
来运行该python文件。
我当时以为我可以将cmd.py文件简单地移到/usr/bin/
或$PATH
中包含的其他目录中,但是由于我还有其他可以与{{ 1}},我的cmd.py
中将有多个文件。
我可以做的另一件事是在/usr/bin
和cmd.py
之间建立符号链接,如下所示:/usr/bin/cmd
,但是我该把cmd.py放在哪里?这是最佳做法吗?
注意:我打算让它在Linux和MacOS X上运行,而不是Windows
答案 0 :(得分:1)
有一件事,我不建议在/usr/bin
中进行安装,因为这是系统程序的去向。 /usr/local/bin
或添加到$PATH
的另一个自定义目录可能是合适的。
要使其像典型程序一样运行,请将其命名为cmd
,因为它不需要扩展名,并将其添加到程序顶部:
#!/usr/bin/env python
(如果要确保使用Python 3.x,则可能要指定python3
而不是python
。)
然后可以使用chmod +x <path to your program>
将其设置为可执行文件。确保您具有执行此操作所需的特权(即可能sudo
)。
答案 1 :(得分:1)
答案 2 :(得分:1)
通常的方法是在setup.py
中定义一组入口点,然后让包装基础架构为您完成繁重的工作。
setup(
# ...
entry_points = {
'console_scripts': ['cmd = cmd:main'],
}
)
这需要setuptools
。
以下是此工具的一些文档:https://python-packaging.readthedocs.io/en/latest/command-line-scripts.html