簡體   English   中英

GAE,sqlite3.OperationalError:無法打開數據庫文件

[英]GAE, sqlite3.OperationalError: unable to open database file

好吧,我讀了很多書。 有很多人遇到同樣的問題,但是所有答案對我都沒有幫助。

我正在嘗試執行此操作-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(以管理員身份)啟動App,如下所示:
    • 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”存在,但為空。 我不知道該怎么辦

謝謝。 如有任何建議,我將不勝感激。

解決:

將用戶名更改為無Unicode或

tmptemp環境變量值更改為e:\\

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

  1. 改變env var的值

    設置temp = e:\\

    設置tmp = e:\\

    2:運行gae

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

原因:

datastore_sqllite_stub.py

def __init__

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將失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM