编码和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不同似乎并不重要 - 为什么会这样?我认为他们必须是相同的,因为我认为不同的是他们会调用不同版本的程序。
答案 0 :(得分:4)
第二个shebang完全被忽略了。只有命令行中命名的文件的shebang行才能找到要传递文件的可执行文件。
shell将文件传递给flask/bin/python
。对于Python,shebang行是只是注释。
__init__.py
文件中的shebang行可能不起作用;你不能在一个包内运行一个模块,并希望仍然使用其余的包;除非您使用__main__
开关,否则脚本始终以-m
运行(在这种情况下,您可能还需要包中的__main__.py
文件。)