Python中"#!"符号是什么意思?
这行代码是什么意思呢?如果没有它,我的 Python3 HTTP 服务器就无法理解,导致浏览器下载到的是一个空的 .py 文件(这取决于 .py 文件的链接)。
#! /usr/local/bin/python3
5 个回答
7
这段话说的是一种叫做shebang(或hashbang)的东西,它和Linux/UNIX系统有关,跟Python没有直接关系。
当你执行一个文件时,系统内核会看到开头的#!
这个标记,然后会根据后面跟着的内容来执行这个脚本。实际上,内核启动的程序会是program-from-shebang script-file-path [script-args]
这样的格式。
需要注意的是,通常不建议在这里写具体的路径,比如.../local/...
,而是应该使用像#!/usr/bin/env python3
这样的写法,这样系统会在当前的环境变量路径中查找python3
,这样做更灵活,也更容易在不同的环境中使用。
8
这不是Python特有的概念,具体可以参考这个链接:http://en.wikipedia.org/wiki/Shebang_(Unix
18
这不是Python特有的,而是一个叫做哈希bang(或称为shebang)的行,它告诉系统应该用哪个解释器来处理这个文件。
规则有些不同,但简单来说,如果一个文件名叫做xyz
,并且它的第一行是哈希bang,当你在命令行中输入xyz
来运行它时,系统会用指定的解释器来执行这个文件,类似于:
/usr/local/bin/python3 xyz