编码和python的新功能。
我正在使用flask框架编写应用程序,并且该教程要求在运行文件时,我应该包括shebang行以调用虚拟环境:
run.py:
#!flask/bin/python
from app_folder import app
app.run(debug = True)
但是,在我的
__init__.py
文件中,有一个不同的shebang行:#!/usr/bin/env python
from flask import Flask
app = Flask(__name__)
from app_folder import views
当我运行
run.py
文件时,两个shebang似乎并不重要-为什么?我以为它们必须与我认为的相同,因为它们将调用该程序的不同版本。 最佳答案
第二个shebang被忽略了。仅在命令行上命名的文件的shebang行用于查找将文件传递到的可执行文件。
Shell将文件移交给flask/bin/python
。对Python而言,shebang只是注释。__init__.py
文件中的shebang行可能无效;您无法在包内运行模块,并希望仍按原样使用包的其余部分;除非您使用__main__
开关,否则脚本始终以-m
的身份运行(在这种情况下,您可能始终需要包中的__main__.py
文件)。
关于python - 为什么这些Shebang线都兼容?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24591504/