Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python GAE,sqlite3.0错误:无法打开数据库文件_Python_Google App Engine_Sqlite - Fatal编程技术网

Python GAE,sqlite3.0错误:无法打开数据库文件

Python GAE,sqlite3.0错误:无法打开数据库文件,python,google-app-engine,sqlite,Python,Google App Engine,Sqlite,好的,我读了很多书。很多人都有同样的问题,但所有的答案对我都没有帮助 我正在尝试这样做-,但每次运行应用程序时,我都会收到相同的消息: > 2014-09-22 10:12:10 Running command: "['C:\\Python27\\pythonw.exe', 'C:\\Program Files (x86)\\Google\\google_appengine\\dev_appserver.py', '--skip_sdk_update_check=yes', '--port

好的,我读了很多书。很多人都有同样的问题,但所有的答案对我都没有帮助

我正在尝试这样做-,但每次运行应用程序时,我都会收到相同的消息:

> 2014-09-22 10:12:10 Running command: "['C:\\Python27\\pythonw.exe', 'C:\\Program Files (x86)\\Google\\google_appengine\\dev_appserver.py', '--skip_sdk_update_check=yes', '--port=8080', '--admin_port=8090', 'C:\\gae\\wp39']"
INFO     2014-09-22 10:12:12,089 devappserver2.py:725] Skipping SDK update check.
Traceback (most recent call last):
  File "C:\Program Files (x86)\Google\google_appengine\dev_appserver.py", line 82, in <module>
    _run_file(__file__, globals())
  File "C:\Program Files (x86)\Google\google_appengine\dev_appserver.py", line 78, in _run_file
    execfile(_PATHS.script_file(script_name), globals_)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\devappserver2.py", line 970, in <module>
    main()
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\devappserver2.py", line 963, in main
    dev_server.start(options)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\devappserver2.py", line 768, in start
    request_data, storage_path, options, configuration)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\devappserver2.py", line 867, in _create_api_server
    default_gcs_bucket_name=options.default_gcs_bucket_name)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\api_server.py", line 364, in setup_stubs
    auto_id_policy=datastore_auto_id_policy)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\datastore\datastore_sqlite_stub.py", line 604, in __init__
    factory=sql_conn)
sqlite3.OperationalError: unable to open database file
2014-09-22 10:12:12 (Process exited with code 1)
>2014-09-22 10:12:10运行命令:“['C:\\Python27\\pythonw.exe','C:\\Program Files(x86)\\Google\\Google\u appengine\\dev\u appserver.py','--skip\u sdk\u update\u check=yes','--port=8080'--admin\u port=8090','C:\\gae\\wp39'”
信息2014-09-22 10:12:12089 devappserver2.py:725]正在跳过SDK更新检查。
回溯(最近一次呼叫最后一次):
文件“C:\Program Files(x86)\Google\Google\u appengine\dev\u appserver.py”,第82行,在
_运行\u文件(\uuuu文件,globals())
文件“C:\Program Files(x86)\Google\Google\u appengine\dev\u appserver.py”,第78行,在运行文件中
execfile(_PATHS.script_文件(script_名称),全局文件)
文件“C:\Program Files(x86)\Google\Google\U appengine\Google\appengine\tools\devappserver2\devappserver2.py”,第970行,在
main()
文件“C:\Program Files(x86)\Google\Google\U appengine\Google\appengine\tools\devappserver2\devappserver2.py”,主目录第963行
dev_server.start(选项)
文件“C:\Program Files(x86)\Google\Google\U appengine\Google\appengine\tools\devappserver2\devappserver2.py”,第768行,在开始处
请求(数据、存储路径、选项、配置)
文件“C:\Program Files(x86)\Google\Google\U appengine\Google\appengine\tools\devappserver2\devappserver2.py”,第867行,位于创建api\U服务器中
默认\u gcs\u bucket\u name=选项。默认\u gcs\u bucket\u name)
文件“C:\Program Files(x86)\Google\Google\U appengine\Google\appengine\tools\devappserver2\api\U server.py”,第364行,位于安装存根中
自动标识策略=数据存储(自动标识策略)
文件“C:\Program Files(x86)\Google\Google\u appengine\Google\appengine\datastore\datastore\u sqlite\u stub.py”,第604行,在__
工厂=sql_连接)
sqlite3.0错误:无法打开数据库文件
2014-09-22 10:12:12(流程退出,代码为1)
Windows 8、Python 27、GAE 1.9.11

  • 我检查了所有权限,并以管理员身份启动了GAE
  • 我尝试了兼容模式(XP&Me,Win7)-没有
  • 我尝试在app.yaml中设置TMP变量
  • 我试图在所有C:drive上找到“datastore.db”,但什么也没找到
  • 我尝试从CMD(作为管理员)启动应用程序,如下所示:
    • C:\gae\wp39>dev_appserver.py C:\gae\wp39
    • C:\gae\wp39>dev\u appserver.py--数据存储路径C:\temp\data.db C:\gae\wp39
    • C:\gae\wp39>dev\u appserver.py--clear\u datastore=yes--datastore\u路径C:\temp\data.db C:\gae\wp39
  • 同样的结果

    当我尝试从控制台运行属性为“-datastore\u path C:\temp\data.db”的应用程序时,系统会创建该文件(约9KB),但仍然无法打开数据库

    文件夹“C:\Users\\AppData\Local\Temp\appengine.levalult”存在,但为空。我不知道还能做什么

    谢谢。如有任何建议,我将不胜感激。

    解决:

    将用户名更改为none或Unicode

    tmp
    temp
    环境变量值更改为
    e:\

    在cmd提示符中,执行以下操作:

  • 更改
    env var

    设置温度=e:\

    设置tmp=e:\

    2:跑吧

    D:\ProgramFiles(x86)\Google\Google\U appengine\launcher\GoogleAppEngineLauncher.exe

  • 原因:

    datastore\u sqllite\u stub.py

    def\uuuu init\uuu中

    self.\uu connection=sqlite3.connect:

    添加以下代码:

        f = open( 'e:/tmp/a.log', 'w' )
    
        f.write( self.__datastore_file )
    
        f.write( '\n' )
    
        for name in os.environ.keys():
    
            f.write( '\n' )
    
            v = os.environ[name]  
    
            f.write( name ) 
    
            f.write( '   ' ) 
    
            f.write( v )
    
        f.close() 
    
    self.__datastore_file = 'e:/tmp/datastore.db'
    
    根据代码,数据库文件位于:

    c:\users\%username%\appdata\local\temp\appengine.xgogo\datastore.db
    
    等于:

    %TEMP%\ appengine.xgogo\datastore.db
    
    其中,
    %Temp%
    是环境变量


    当用户名包含Unicode字符时,make失败。

    是否尝试更新GAE SDK?