Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby系统调用不观察python脚本的路径_Python_Ruby_Windows_Cmd_System - Fatal编程技术网

Ruby系统调用不观察python脚本的路径

Ruby系统调用不观察python脚本的路径,python,ruby,windows,cmd,system,Python,Ruby,Windows,Cmd,System,这项工作: system "python \"C:/Program Files (x86)/Google/google_appengine/someScript.py\" 这不起作用: system "python \"someScript.py\" 包含someScript.py的目录被添加到我的windowsPATH变量中,因此如果我打开一个CMD窗口并键入: someScript.py 它运行良好 如何使ruby脚本在观察windows环境路径变量时能够调用someScript.py

这项工作:

system "python \"C:/Program Files (x86)/Google/google_appengine/someScript.py\"
这不起作用:

system "python \"someScript.py\"
包含
someScript.py
的目录被添加到我的windows
PATH
变量中,因此如果我打开一个CMD窗口并键入:

someScript.py
它运行良好

如何使ruby脚本在观察windows环境路径变量时能够调用
someScript.py
,这样就不必为python脚本指定绝对路径?

python不使用
$path
环境变量

您必须始终在命令行上指定python脚本的完整路径。这可以是当前目录的相对路径,也可以是绝对路径

扩展名为
.py
的文件与Python可执行文件之间的关联是一种关联,其中Windows在脚本文件位于当前搜索路径上后执行Python可执行文件。Windows在调用Python可执行文件时,会将脚本的完整绝对路径传递给它。当您直接使用
system
执行Python可执行文件时,您将绕过该查找


您可以尝试直接使用
system“someScript.py”
执行Python脚本,而不使用
Python
可执行文件,但是我对Ruby和Windows还不太熟悉,不知道这是否会尊重Windows命令提示符使用的
.py
扩展注册。

您可以使用@sr2222更改Ruby中的当前目录:这完全不同,用于在导入时查找模块。OP正在寻找方法来指定Python解释器需要加载的主脚本<代码>PYTHONPATH也没有为此进行咨询。