在阅读a Flask tutorial时,作者要求我chmod a+x run.py
然后./run.py
,而不是像往常那样只是python run.py
。当我忽略了作者的指令并执行了python run.py
时,我得到了ImportError
。(我怀疑这个错误与vitrualanv
有关。)
所以我的问题是:
之间的区别是什么./run.py
和
python run.py
答案 0 :(得分:3)
我相信你的怀疑是对的。请注意他是如何创建一个名为flask
的虚拟实体:
virtualenv flask
run.py
包含以下内容:
#!flask/bin/python
from app import app
app.run(debug=True)
第一行称为shebang
,其中作者定义python二进制文件应该从flask/bin/python
执行。如果您改为执行python run.py
,则使用系统的默认python二进制文件。您可以activating the virtualenv通过调用source bin/activate
来解决此问题。或者通过明确调用flask/bin/python run.py
答案 1 :(得分:1)
看一下文件的第一行:
#!flask/bin/python
这意味着运行:
$ ./run.py
相当于:
$ flask/bin/python run.py
由于flask / bin / python在虚拟环境中,因此安装了不同的模块。