Shebang 行 #!/usr/bin/python3 阻止服务器 运行

Shebang line #!/usr/bin/python3 preventing server run

这是我的代码。基本上我在那里有 Shebang 线,因为没有它 psycopg2 无法工作。

但是现在当我有这一行时,它不允许我 运行 数据库,它只是说 "no module named 'flask'"

 #!/usr/bin/python3.4
    #
    # Small script to show PostgreSQL and Pyscopg together
    #

    from flask import Flask, render_template
    from flask import request
    from flask import *
    from datetime import datetime
    from functools import wraps
    import time
    import csv
    import psycopg2
    app = Flask(__name__)
    app.secret_key ='lukey'
    def getConn():
        connStr=("dbname='test' user='lukey' password='lukey'")
        conn=psycopg2.connect(connStr)
        return conn

    @app.route('/')
    def home():
        return render_template(index.html)

    @app.route('/displayStudent', methods =['GET'])
    def displayStudent():
        residence = request.args['residence']
        try:
            conn = None
            conn = getConn()
            cur = conn.cursor()
            cur.execute('SET search_path to public')

            cur.execute('SELECT stu_id,student.name,course.name,home_town FROM student,\
                        course WHERE course = course_id AND student.residence = %s',[residence])
            rows = cur.fetchall()
            if rows:
                return render_template('stu.html', rows = rows, residence = residence)
            else:
                return render_template('index.html', msg1='no data found')

        except Exception as e:
            return render_template('index.html', msg1='No data found', error1 = e)

        finally:
            if conn:
                conn.close()

    #@app.route('/addStudent, methods =['GET','POST']')
    #def addStudent():

    if __name__ == '__main__':
        app.run(debug = True)

这是环境问题,不是烧瓶、postgres 或 shebang 问题。正在调用 Python 的特定版本,但未为其提供正确的库路径。

根据您使用的平台,将 shebang 更改为 #! /usr/bin/env python3 可以解决问题,但如果不是(很可能不是,尽管使用 env 被认为是 better/portable 做法这些天),那么您可能需要在代码中手动添加 Python3 库位置。

sys.path.append("/path/to/your/python/libs")

如果你知道你的 Python 库在哪里(或者 flask 安装在某个特殊的地方?)那么你可以将它添加到路径中,然后按照你添加到路径的行导入将它包含在他们搜索模块。