在windows任意目录执行python脚本

在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

原文地址:https://www.cnblogs.com/zjutzz/p/12857888.html