Python调用命令行上指示的脚本是否有path?

我想用DOS shell命令行(或.bat文件)调用Python脚本,语法如下:

C:\python27\python myscript.py 

脚本myscript.py位于目录c:\a_process\python_lib 。 我将能够让Python通过searchpath来find该脚本,所以我可以在我的当前目录是任意的时候调用它(如C:\junk )。 我的问题是,我找不到Python用于Python调用命令行上指示的脚本的path(如果有的话)。 我已经search了Python文档,SO和网页,并且没有发现任何有用的信息。 (我发现很多关于Python本身的命令行parsing的东西,这不是我正在寻找的东西)。

我在C:\Python27\Lib\site-packages目录下有一个adt_python_lib.pth文件,并validation它可以工作(我可以导入位于那里的模块)。作为一个实验,我试图设置PYTHONPATH环境variables(通过键入validation在DOS shell中设置并看到该行

 PYTHONPATH=C:\a_process\python_lib 

在输出中。 值得一提的是,我也调用了Python并执行了一个sys.path ,我可以看到C:\a_process\python_lib在预期的path中被列出来了: ['', 'c:\\a_process\\python_lib', ...]

我发现这个最接近的问题是执行python程序 。

这似乎意味着(但没有声明)没有pathsearchPython调用命令行上指示的文件。 如果有人可以权威地声明这是正确的,那么我将恢复到另一个替代scheme(可能只需将c:\a_process\python_lib%PATH%并直接调用脚本)。

不用指定完整的文件名,只需用-m开关指定模块即可。

 C:\python27\python -m myscript 

这假设目录是你的PYTHONPATH环境变量的一部分。

我不相信你能做到你想要的,但是…

尝试用.bat包装你的Python命令,并把BAT文件放在PATH某处。 然后,您可以从任何地方调用.bat (只要确保在指定要在BAT文件中运行的python脚本的位置时使用绝对路径)。