我想从DOS shell命令行(或从.bat文件)调用Python脚本,语法如下:
C:\python27\python myscript.py
脚本myscript.py
位于目录c:\a_process\python_lib
中。我希望Python能够通过搜索路径找到该脚本,所以当我的当前目录是任意的时(例如C:\junk
),我可以调用它。我的问题是我无法找到Python用于Python调用命令行上指示的脚本的路径(如果有的话)。我搜索过Python文档,SO和Web,但实际上还没有找到任何有用的东西。 (我发现很多关于Python本身的命令行解析的东西,这不是我想要的)。
我在adt_python_lib.pth
目录中有一个C:\Python27\Lib\site-packages
文件并验证它是否有效(我可以导入位于那里的模块。)作为一个实验,我试图设置PYTHONPATH
环境变量(通过在DOS shell中键入SET
并查看行
PYTHONPATH=C:\a_process\python_lib
在输出中。为了它的价值,我还调用了Python并做了一个sys.path
,我可以看到确实C:\a_process\python_lib
在路径中按预期列出:['', 'c:\\a_process\\python_lib', ...]
我发现最接近的问题是Executing python program。
这似乎暗示(但未声明)没有搜索Python调用命令行上指示的文件的路径。如果有人可以权威地声明这是正确的,那么我将恢复另一种选择(可能只是将c:\a_process\python_lib
添加到%PATH%
并直接调用脚本。)
答案 0 :(得分:1)
不要指定完整的文件名,只需使用-m
开关指定模块。
C:\python27\python -m myscript
这假设该目录是PYTHONPATH
环境变量的一部分。
答案 1 :(得分:0)
我不相信你能做到你想要的,但是......
尝试在.bat
中包装Python命令,并将BAT文件放在PATH
中的某个位置。然后你可以从任何地方调用.bat
(只需确保在指定要在BAT文件中运行的python脚本的位置时只使用绝对路径)。