【问题标题】:Executing Python scripts执行 Python 脚本
【发布时间】:2016-08-05 09:29:18
【问题描述】:

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

所以我的问题是:有什么区别

./run.py

python run.py

【问题讨论】:

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


    【解决方案1】:

    我相信你的怀疑是正确的。注意他是如何创建一个名为 flask 的 virtualenv 的:

    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

    【讨论】:

      【解决方案2】:

      看一下文件的第一行:

      #!flask/bin/python
      

      表示运行:

      $ ./run.py
      

      相当于:

      $ flask/bin/python run.py
      

      由于flask/bin/python是在虚拟环境中,所以安装了不同的模块。

      【讨论】:

        猜你喜欢
        • 2017-06-29
        • 1970-01-01
        • 2014-12-13
        • 2019-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多