执行Python脚本

时间:2016-08-05 09:29:18

标签: python bash command-line-interface virtualenv execution

在阅读a Flask tutorial时,作者要求我chmod a+x run.py然后./run.py,而不是像往常那样只是python run.py。当我忽略了作者的指令并执行了python run.py时,我得到了ImportError。(我怀疑这个错误与vitrualanv有关。)

所以我的问题是:

之间的区别是什么
./run.py

python run.py

2 个答案:

答案 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在虚拟环境中,因此安装了不同的模块。