在Linux下想要在任意目录执行一个python脚本,很简单:
- 把python脚本添加可执行权限
- 把python脚本放到PATH所包含的任意一个目录下,不和已有文件重名即可;如果重名则放到最前一个
- python文件名可以不以".py"结尾,只要以shabang (
#! /usr/bin/env python)开头即可
然而在Windows下这么做不行。研究了一下Miniconda自带的pip命令。实际上:
- 调用pip,调用的是pip.exe
- pip.exe是二进制文件,咱也不知道它里面是什么鬼,大概猜一下是去调用pip-script.py
- pip-script.py的内容,和linux下的
pip内容基本一致
因此,如法炮制。例如我要放一个命令叫做c3pd,则:
- 把c3pd-script.py放到
pip.exe所在目录(E:/soft/Miniconda/Scripts) - 同一目录下,放一个
c3pd.bat脚本,里面内容是调用c3pd-script.py。注意路径要用~dp0为前缀;注意接收所有参数:
c3pd.bat内容:
python %~dp0/c3pd-script.py %*
其中%*相当于bash里的$@。
参考
Making #!/usr/bin/env python work on Windows
来源:oschina
链接:https://my.oschina.net/u/4408404/blog/4273666