[英]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
相同的結果。
當我嘗試使用屬性“ --datastore_path C:\\ temp \\ data.db”從控制台運行應用程序時,系統會創建該文件(大約9KB),但仍然無法打開數據庫。
文件夾“ C:\\ Users \\\\ AppData \\ Local \\ Temp \\ appengine.levalult”存在,但為空。 我不知道該怎么辦
謝謝。 如有任何建議,我將不勝感激。
解決:
將用戶名更改為無Unicode或
將tmp
和temp
環境變量值更改為e:\\
或
在cmd提示符下,執行以下操作:
改變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.