问题描述
我想知道如何创建一个入口点来调用python脚本,类似于black
。
例如:black my_script.py
说我有一个名为fix_newline.py
的python文件。
我不想在python fix_newline.py path/to/my_script.py
目录中调用fix_newline.py
,而是要为fix_newline
分配名称python path/to/fix_newline.py
。
最终的目标是只要我处于相同的环境(例如fix_newline
)中,就可以从目录树中的任何位置调用~/.bash_profile
。
解决方法
我相信我已经找到了一种方法,可以按照@Chris_Rands和@CharlesDuffy提供的link的建议,通过打包到PyPI来创建别名:
setup(
...,entry_points={"console_scripts": ["realpython=reader.__main__:main"]},)
entry_point
中setup
函数中的setup.py
kwarg应该是窍门。
-
将
path/to
添加到您的PATH
变量.bash_profile
中。 (如果您有很多脚本,请考虑将它们安装在~/bin/
之类的固定位置,这样就不会在PATH
上添加很多不必要的目录。 -
确保您的脚本可以执行并且具有适当的shebang。
-
从脚本名称中删除
.py
。
您还可以为此使用Bash别名:https://tldp.org/LDP/abs/html/aliases.html
确保在计算机上使用python和fix_newline.py
的绝对路径:
alias fix_newline='/path/to/your/python /path/to/fix_newline.py'
然后您可以使用:
fix_newline file.txt
如果您希望此别名为永久别名,请确保将此配置放入您的~/.bashrc
文件:https://tldp.org/LDP/abs/html/sample-bashrc.html