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 &引用;Can';t将文件提取到鸡蛋缓存“中”;GAE中的错误_Python_Google App Engine_Python 2.7_Python Egg Cache - Fatal编程技术网

Python &引用;Can';t将文件提取到鸡蛋缓存“中”;GAE中的错误

Python &引用;Can';t将文件提取到鸡蛋缓存“中”;GAE中的错误,python,google-app-engine,python-2.7,python-egg-cache,Python,Google App Engine,Python 2.7,Python Egg Cache,我已经安装了Windows 7和Python 2.7以及setuptools 下载pitz模块(简易安装pitz)后,Google应用程序引擎停止工作: bad runtime process port [''] Traceback (most recent call last): File "G:\Program Files (x86)\Google\google_appengine\_python_runtime.py", line 184, in <module>

我已经安装了Windows 7和Python 2.7以及setuptools

下载pitz模块(简易安装pitz)后,Google应用程序引擎停止工作:

bad runtime process port ['']

Traceback (most recent call last):
  File "G:\Program Files (x86)\Google\google_appengine\_python_runtime.py", line 184, in <module>
    _run_file(__file__, globals())
  File "G:\Program Files (x86)\Google\google_appengine\_python_runtime.py", line 180, in _run_file
    execfile(script_path, globals_)
  File "G:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\python\runtime.py", line 28, in <module>
    from google.appengine.ext.remote_api import remote_api_stub
  File "G:\Program Files (x86)\Google\google_appengine\google\appengine\ext\remote_api\remote_api_stub.py", line 75, in <module>
    import yaml
  File "G:\Program Files (x86)\Google\google_appengine\lib\yaml-3.10\yaml\__init__.py", line 14, in <module>
    from cyaml import *
  File "G:\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.11-py2.7-win-amd64.egg\_yaml.py", line 7, in <module>
  File "C:\Python27\lib\site-packages\pyyaml-3.11-py2.7-win-amd64.egg\_yaml.py", line 4, in __bootstrap__
  File "C:\Python27\lib\site-packages\pkg_resources.py", line 950, in resource_filename
    self, resource_name
  File "C:\Python27\lib\site-packages\pkg_resources.py", line 1607, in get_resource_filename
    self._extract_resource(manager, self._eager_to_zip(name))
  File "C:\Python27\lib\site-packages\pkg_resources.py", line 1667, in _extract_resource
    manager.extraction_error()
  File "C:\Python27\lib\site-packages\pkg_resources.py", line 996, 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] : 'C:\\Users\\Kostr\\AppData\\Roaming\\Python-Eggs\\pyyaml-3.11-py2.7-win-amd64.egg-tmp\\_yaml.pyd'

The Python egg cache directory is currently set to:

  C:\Users\Kostr\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.
错误的运行时进程端口['']
回溯(最近一次呼叫最后一次):
文件“G:\ProgramFiles(x86)\Google\Google\u appengine\u python\u runtime.py”,第184行,在
_运行\u文件(\uuuu文件,globals())
文件“G:\Program Files(x86)\Google\Google\U appengine\U python\U runtime.py”,第180行,在运行文件中
execfile(脚本路径,全局路径)
文件“G:\Program Files(x86)\Google\Google\U appengine\Google\appengine\tools\devappserver2\python\runtime.py”,第28行,在
从google.appengine.ext.remote\u api导入remote\u api\u存根
文件“G:\Program Files(x86)\Google\Google\u appengine\Google\appengine\ext\remote\u api\remote\u api\u stub.py”,第75行,在
进口yaml
文件“G:\Program Files(x86)\Google\Google\u appengine\lib\yaml-3.10\yaml\\uuuuuuu init\uuuuuuuuuu.py”,第14行,在
从cyaml进口*
文件“G:\Program Files(x86)\Google\Google\U appengine\lib\yaml-3.10\yaml\cyaml.py”,第5行,在
来自(u yaml import CParser,CEmitter)
文件“C:\Python27\lib\site packages\pyyaml-3.11-py2.7-win-amd64.egg\\u yaml.py”,第7行,在
文件“C:\Python27\lib\site packages\pyyaml-3.11-py2.7-win-amd64.egg\\ u yaml.py”,第4行,在\ u引导程序中__
文件“C:\Python27\lib\site packages\pkg_resources.py”,第950行,位于资源文件名中
self,资源名称
文件“C:\Python27\lib\site packages\pkg\u resources.py”,第1607行,位于get\u resource\u文件名中
self.\u提取\u资源(经理,self.\u渴望\u到\u zip(姓名))
文件“C:\Python27\lib\site packages\pkg\u resources.py”,第1667行,在\u extract\u资源中
manager.extraction_error()
文件“C:\Python27\lib\site packages\pkg_resources.py”,第996行,在extraction_error中
提出错误
pkg_resources.ExtractionError:无法将文件提取到鸡蛋缓存
尝试将文件提取到Python文件时发生以下错误
隐藏物:
[错误5]:'C:\\Users\\Kostr\\AppData\\Roaming\\Python Eggs\\pyyaml-3.11-py2.7-win-amd64.egg tmp\\\ u yaml.pyd'
Python egg缓存目录当前设置为:
C:\Users\Kostr\AppData\Roaming\Python
您的帐户可能没有对此目录的写入权限?你可以
通过设置PYTHON_EGG_缓存环境来更改缓存目录
变量以指向可访问的目录。
如何解决这个问题

来自:

为了避免这个特殊问题,可以在WSGI应用程序脚本文件的开头设置
PYTHON\u EGG\u CACHE
CACHE环境变量。环境变量应设置为Apache运行用户拥有和/或可写的目录

import os
os.environ['PYTHON_EGG_CACHE'] = '/usr/local/pylons/python-eggs' 
再次确认这个存在。对于Windows用户,可能类似于:

os.environ['PYTHON_EGG_CACHE'] = '/tmp'
或者,如果使用mod_wsgi 2.0,也可以对在嵌入式模式下运行的应用程序使用WSGIPythonEggs指令,或者在使用守护程序模式时,使用WSGIDaemonProcess指令的
python-egs
选项


请注意,您应该避免使用任何人都可以写入的目录或文件,因为这可能会危及安全性。还要注意,如果在同一个web服务器下托管多个应用程序,它们都将作为同一个用户运行,因此每个应用程序都可以查看和修改彼此的文件。如果这是一个问题,您应该在不同的web服务器上以不同的用户身份运行应用程序,或者在不同的系统上运行应用程序。或者,应用程序所需或更新的任何数据都应托管在数据库中,每个应用程序都有单独的帐户。

听起来您没有写入目录的权限。卸载pitz,然后使用-Z标记重新安装,将其作为解压缩版本安装。然后,您不需要每次提取缓存目录。这应该可以解决目录/权限问题。

您是否具有对“C:\Users\Kostr\AppData\Roaming\Python”的写入权限?是的。此文件夹包含“pyyaml-3.11-py2.7-win-amd64.egg tmp”目录和“\u yaml.pyd”文件。您是否尝试以管理员身份运行过?是的,这无法解决我在应用程序目录中创建的“tmp”文件夹的问题,并将“os.environ['PYTHON\u egg\u CACHE']='/tmp'”字符串添加到我的PYTHON文件中。但这并不能解决问题。输出的错误甚至没有变化,真的吗?在PythonEgg缓存目录当前设置为:之后,日志会说什么?您是否以管理员身份登录?“/tmp”是否存在,您是否有写入权限?它仍然是“C:\Users\Kostr\AppData\Roaming\Python”。我手动创建了“/tmp”文件夹,并拥有写入它的权限,
PYHTON\u EGG\u缓存的设置不起作用。我提供的代码将位于WSGI应用程序脚本文件的顶部。你把它放在哪里了?我还注意到,您将程序分为两个硬盘驱动器(G:和C:)。您可能需要使用绝对路径,以确保它位于正确的驱动器上。尝试记录os.environ.get('PYTHON\u EGG\u CACHE')
以查看其设置位置。“WSGI脚本文件”是否表示我的应用程序的主.py文件?在开始注释之后,我将“import os.environ['PYTHON\u EGG\u CACHE']='/tmp'”放在这个文件的顶部。我在“C:”光盘上安装了Python27,我的项目在“G:”光盘上。我如何卸载pitz?我尝试“easy_install-m pitz”,然后手动删除“C:\Python27\Lib\site packages”和“C:\Python27\Scripts”文件夹中的所有pitz文件。然后我运行“easy_install-Z pitz”,但在所有这些之后,我得到了相同的错误,这是pyyaml造成的,而不是pitz。卸载pyyaml并使用-ztl重新安装此方法解决了我的问题。我确实用pip卸载了pyyaml,然后用easy_install-z pyyaml安装了它。