Python Linux/Unix服务器:访问与执行脚本位于不同目录中的SQL数据库

Python Linux/Unix服务器:访问与执行脚本位于不同目录中的SQL数据库,python,sql,webserver,Python,Sql,Webserver,我有一个python脚本,它执行SQL查询&从SQLite3数据库文件获取信息。SQLite3数据库文件位于与执行脚本不同的目录中。所有这些都发生在我的webhostUnix服务器cpanel的cgi-bin目录中 我的问题:是否可以让python脚本访问/连接到另一个目录中的SQLite3数据库?现在,当我在Web主机上运行脚本时,它无法连接到SQLite3数据库 我的python文件存在于webhost上的以下目录中:public_HTML/cgi bin/dataMiner/。SQLite

我有一个python脚本,它执行SQL查询&从SQLite3数据库文件获取信息。SQLite3数据库文件位于与执行脚本不同的目录中。所有这些都发生在我的webhostUnix服务器cpanel的cgi-bin目录中

我的问题:是否可以让python脚本访问/连接到另一个目录中的SQLite3数据库?现在,当我在Web主机上运行脚本时,它无法连接到SQLite3数据库

我的python文件存在于webhost上的以下目录中:public_HTML/cgi bin/dataMiner/。SQLite3数据库文件存在于public_HTML/cgi bin/目录中

我在python脚本中的代码是:

import DataMiner

def connect_ex( f_name ):
    """ Post: """

    try:
        # When the script runs the file is never found but it actually does exist
        if not os.path.isfile( f_name ): 
            raise Exception("")

        conn = sqlite3.connect( f_name )

        return conn

    except IOError, msg:
        #print str(msg)
        return None

    except OSError, msg:
        #print str(msg)
        return None

    except sqlite3.OperationalError, msg:
        #print str(msg)
        return None

    except Exception, e:
        return None


conn  = connect_ex("../competitionDB.db")
res   = DataMiner.execute_query( conn, "SELECT * FROM MyTable;" )
print res
conn.close()

对于我使用的firebird数据库,您必须指定从服务器根目录到数据库的完整路径

例如,So/var/folder/www/db/dbfile.db,其中/var位于

仅仅从网站db/dbfile.db中说出它的位置,至少对firebird来说是行不通的


为了安全起见,这还允许您将数据库文件放在一个甚至不在网站上的文件夹中。

您是否尝试过放数据库的绝对路径而不是相对路径?您的意思是:?然后是&同样的问题发生了,您收到的错误消息是什么样子的?可能是权限问题吗?IE在许多主机上,与您的用户名不同的Web服务器用户是否有权访问数据库及其所在的目录?