我想用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脚本的位置时使用绝对路径)。