11

这行代码是什么意思?没有它,我的python3 http服务器无法理解,让浏览器下载一个空的.py文件(依赖于.py文件的链接)

#! /usr/local/bin/python3
4

5 回答 5

18

这不是 Python 的东西,它是一个hashbang(或 shebang)行,它指示哪个解释器应该处理文件。

规则各不相同,但以最简单的形式,具有名称xyz(包含作为第一行)的文件,当从带有 的命令行运行时xyz,将使用该解释器运行它,类似于:

/usr/local/bin/python3 xyz
于 2011-06-09T06:25:17.983 回答
8

这不是特定于 python 的概念,请参阅http://en.wikipedia.org/wiki/Shebang_(Unix )

于 2011-06-09T06:25:26.280 回答
7

这是 shebang/hashbang 行和 Linux/UNIX 的东西,根本与 Python 无关。

执行文件时,内核将看到#!魔法并使用它之后的任何内容来执行脚本。内核启动的实际程序将是program-from-shebang script-file-path [script-args]

请注意,包含路径通常不是一件好事,.../local/...而是使用 eg#!/usr/bin/env python3这将导致在python3当前更便携的 PATH 中查找。

于 2011-06-09T06:25:37.173 回答
2

这不是特定于 python 的,而是称为Shebang,它告诉操作系统使用哪个程序运行此脚本。

于 2011-06-09T06:26:43.590 回答
2

UNIX 社帮?见http://en.wikipedia.org/wiki/Shebang_(Unix)!和第一个之间的空间/可能不应该在那里。

于 2011-06-09T06:27:45.383 回答