2014-09-21 54 views
0

好吧,我讀了很多。有很多人遇到同樣的問題,但所有的答案對我都沒有幫助。GAE,sqlite3.OperationalError:無法打開數據庫文件

我試圖做到這一點 - http://googlecloudplatform.github.io/appengine-php-wordpress-starter-project/,但我在運行應用程序每次,我也有同樣的消息:

> 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) 

Windows 8中,Python27,GAE 1.9.11

  1. 我檢查了所有權限並以管理員身份啓動了GAE。
  2. 我試過兼容模式(XP & Me,Win7) - 什麼也沒有。
  3. 我試過在app.yaml中設置TMP變量
  4. 我試圖在所有C:驅動器上找到「datastore.db」 - 什麼都沒找到。
  5. 我試圖從CMD啓動應用程序(如管理員),如下所示:
    • C:\ GAE \ wp39> dev_appserver.py C:\ GAE \ wp39
    • C:\ GAE \ wp39> dev_appserver.py --datastore_path C:\ temp \ data.db C:\ gae \ wp39
    • C:\ gae \ wp39> dev_appserver.py --clear_datastore = yes --datastore_path C:\ temp \ data.db C:\ gae \ wp39

相同的結果。

當我嘗試從屬性「控制檯中運行的應用程序--datastore_path C:\ TEMP \ data.db」,系統會創建該文件(約9KB),但仍然無法打開數據庫

的。文件夾「C:\ Users \\ AppData \ Local \ Temp \ appengine.levalult」存在,但爲空,我不知道還有什麼辦法。

+0

您是否嘗試過更新GAE SDK? – Mario 2014-09-25 09:59:59

回答

1

解決:

更改用戶名無Unicode或

更改tmptemp環境變量值e:\

在cmd提示符下,執行:

  1. 變化env var

    設置溫度= E:\

    設置TMP = E:\

    2:運行GAE

    D:\Program Files (x86)\Google\google_appengine\launcher\GoogleAppEngineLauncher.exe

原因:

datastore_sqllite_stub.py

之前self.__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失敗。

相關問題