当我使用python3.5 my_script.py时,Python在哪里寻找my_script.py?

时间:2017-07-30 12:46:04

标签: python

当我打电话

python3.5 my_script.py

Python在哪里寻找my_script.py?只是在当前的工作目录中,或者如果我使用带有shebang行的脚本,是否存在与PYTHONPATHimport PATH类似的机制?

(在你认为这是一个重复的问题之前:到目前为止,StackOverflow上的问题和答案不考虑上述情况!)

3 个答案:

答案 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解析为其他位置,原因有两个:

  1. 这样做并不常见

  2. 它避免了错误和安全问题

答案 2 :(得分:0)

Python会在您启动命令的同一目录中查找。如果文件不存在,python将引发错误。