2013-03-25 43 views
1

我试图使用Appengine SDK版本1.7.6,但收到致命错误(如下所述),因此恢复到1.7.5,其中我的应用工作正常。然而,当我尝试在1.7.5中运行实验devappserver时,我在1.7.6中看到的错误再次出现。我在win 7机器上运行Python 2.7。标准安装AppEngine的选择。致命devappserver2错误:Appengine 1.7.6和1.7.5 python 2.7中的PYTHON_EGG_CACHE,win7

这些错误信息是指涉及到PYTHON_EGG_CACHE权限,但... - 2)的位置注明的应用程序可以成功地提取文件 - 1)他们不为“老” dev_appserver 发生。事实上,我将PYTHON_EGG_CACHE的路径更改为另一个位置,给了它开放的权限,但仍然收到错误。 - 3)我的网站包中有pyyaml,所以我不知道为什么它需要做临时提取。

寻求解决方案的任何帮助将不胜感激,因为我将被迫在几次发布时间使用新的devappserver。

命令行错误下面转储:

python "C:\Program Files (x 
86)\Google\google_appengine\devappserver2.py" . 
WARNING 2013-03-25 19:10:41,029 devappserver2.py:497] devappserver2.py is curre 
ntly experimental but will eventually replace dev_appserver.py in the App Engine 
Python SDK. For more information and to report bugs, please see: http://code.go 
ogle.com/p/appengine-devappserver2-experiment/ 
INFO  2013-03-25 19:10:41,171 appcfg.py:618] Checking for updates to the SDK. 

WARNING 2013-03-25 19:10:44,525 simple_search_stub.py:975] Could not read searc 
h indexes from c:\users\ben\appdata\local\temp\appengine.dev~upskillme-main.Ben\ 
search_indexes 
INFO  2013-03-25 19:10:44,539 api_server.py:148] Starting API server at: http 
://localhost:49302 
INFO  2013-03-25 19:10:44,555 dispatcher.py:96] Starting server "default" run 
ning at: http://localhost:8080 
INFO  2013-03-25 19:10:44,571 admin_server.py:112] Starting admin server at: 
http://localhost:8000 
Traceback (most recent call last): 
    File "C:\Program Files (x86)\Google\google_appengine\_python_runtime.py", line 
150, in <module> 
    run_file(__file__, globals()) 
    File "C:\Program Files (x86)\Google\google_appengine\_python_runtime.py", line 
146, in run_file 
    execfile(script_path, globals_) 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\de 
vappserver2\python\runtime.py", line 39, in <module> 
    from google.appengine.ext.remote_api import remote_api_stub 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\remo 
te_api\remote_api_stub.py", line 75, in <module> 
    import yaml 
    File "C:\Program Files (x86)\Google\google_appengine\lib\yaml-3.10\yaml\__init 
__.py", line 14, in <module> 
    from cyaml import * 
    File "C:\Program Files (x86)\Google\google_appengine\lib\yaml-3.10\yaml\cyaml. 
py", line 5, in <module> 
    from _yaml import CParser, CEmitter 
    File "C:\Python27\lib\site-packages\pyyaml-3.10-py2.7-win32.egg\_yaml.py", lin 
e 7, in <module> 
    File "C:\Python27\lib\site-packages\pyyaml-3.10-py2.7-win32.egg\_yaml.py", lin 
e 4, in __bootstrap__ 
    File "C:\Python27\lib\site-packages\pkg_resources.py", line 882, in resource_f 
ilename 
    self, resource_name 
    File "C:\Python27\lib\site-packages\pkg_resources.py", line 1351, in get_resou 
rce_filename 
    self._extract_resource(manager, self._eager_to_zip(name)) 
    File "C:\Python27\lib\site-packages\pkg_resources.py", line 1406, in _extract_ 
resource 
    manager.extraction_error() # report a user-friendly error 
    File "C:\Python27\lib\site-packages\pkg_resources.py", line 928, in extraction 
_error 
    raise err 
pkg_resources.ExtractionError: Can't extract file(s) to egg cache 

The following error occurred while trying to extract file(s) to the Python egg 
cache: 

    [Error 5] Access is denied: 'C:\\Users\\Ben\\AppData\\Roaming\\Python-Eggs\\py 
yaml-3.10-py2.7-win32.egg-tmp\\_yaml.pyd' 

The Python egg cache directory is currently set to: 

    C:\Users\Ben\AppData\Roaming\Python-Eggs 

Perhaps your account does not have write access to this directory? You can 
change the cache directory by setting the PYTHON_EGG_CACHE environment 
variable to point to an accessible directory. 

Exception in thread Thread-4: 
Traceback (most recent call last): 
    File "C:\Python27\lib\threading.py", line 551, in __bootstrap_inner 
    self.run() 
    File "C:\Python27\lib\threading.py", line 504, in run 
    self.__target(*self.__args, **self.__kwargs) 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\de 
vappserver2\server.py", line 1045, in _loop_adjusting_instances 
    self._adjust_instances() 
+0

我建议在相应的组中报告这个,以确保它看到:https://groups.google.com/forum/?fromgroups#!论坛/ appengine-devappserver2-discuss – dragonx 2013-03-25 06:51:12

+0

谢谢。已经这样做了。 – BenHealey 2013-03-25 07:27:42

回答

2

如果有人有相同的问题走来,为我工作的决议如下:

  • 解压PyYAML-3.10-PY2。在您的python27网站包 目录中的7-win32.egg到站点包内的​​新目录中。您需要将 解压缩到像NEWPYYAML-3.10-py2.7-win32.egg 这样的目录名称中,以避免名称冲突。
  • 重命名你的原蛋。到其他东西(例如,OLDPyYAML-3.10-py2.7-win32.egg)。
  • 重新命名新的目录来PyYAML-3.10-py2.7-win32.egg

蛋现在实际上会指向在包含解压Python文件您的站点包目录中的所有引用。新的devappserver应该能够处理这个问题。

不确定如何解开Windows中的鸡蛋?看到这里(假设你有Winzip或类似的安装): http://mail.python.org/pipermail/chicago/2007-July/002301.html