当我打电话
python3.5 my_script.py
Python在哪里寻找my_script.py
?只是在当前的工作目录中,或者如果我使用带有shebang行的脚本,是否存在与PYTHONPATH
或import
PATH
类似的机制?
(在你认为这是一个重复的问题之前:到目前为止,StackOverflow上的问题和答案不考虑上述情况!)
答案 0 :(得分:1)
使用python <something>
直接调用Python可执行文件,而不使用任何其他命令行参数,将使Python可执行文件尝试运行文件<something>
。因此它会将该事物解释为路径并尝试找到它。
因此,如果您只是编写python my_script.py
,它将查看当前目录。如果你写python ../my_script.py
,它将在父目录中查找。如果你写python /home/foo/my_script.py
,它会查看foo的主目录。
与任何命令一样,最好查看其manpage以了解其工作原理:
当使用文件名参数或文件作为标准输入调用时,它从该文件读取并执行脚本
答案 1 :(得分:0)
提供给python3.5的参数是path
。在这里,它不是以/
开头,因此它是相对路径,相当于./script
Python不会尝试将path
解析为其他位置,原因有两个:
这样做并不常见
它避免了错误和安全问题
答案 2 :(得分:0)
Python会在您启动命令的同一目录中查找。如果文件不存在,python将引发错误。