1

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

C:\python27\python myscript.py

该脚本myscript.py位于目录c:\a_process\python_lib. 我希望能够让 Python 通过搜索路径找到该脚本,因此当我的当前目录是任意的(如C:\junk)时我可以调用它。我的问题是我无法找出 Python 用于在调用 Python 的命令行上指示的脚本的路径(如果有的话)。我已经搜索了 Python 文档、SO 和网络,但确实没有发现任何有用的信息。(我在 Python 本身中发现了很多关于命令行解析的东西,这不是我想要的)。

adt_python_lib.pth在目录中有一个文件C:\Python27\Lib\site-packages并验证它是否有效(我可以导入位于那里的模块。)作为一个实验,我还尝试设置PYTHONPATH环境变量(通过输入SETDOS shell 并查看该行来验证

PYTHONPATH=C:\a_process\python_lib

在输出中。对于它的价值,我还调用了 Python 并做了一个sys.path,我可以看到它确实C:\a_process\python_lib如预期的那样列在路径中:['', 'c:\\a_process\\python_lib', ...]

我发现的最接近的 SO 问题是Executing python program

这似乎暗示(但没有说明)没有搜索 Python 调用命令行上指示的文件的路径。如果有人可以权威地声明这是正确的,那么我将恢复为另一种选择(可能只是直接添加c:\a_process\python_lib%PATH%调用脚本)。

4

2 回答 2

1

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

C:\python27\python -m myscript

这假定该目录是您的PYTHONPATH环境变量的一部分。

于 2013-03-21T19:34:27.660 回答
0

我不相信你可以做你想做的事,但是......

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

于 2013-03-21T19:17:47.447 回答