Das mit Linuxbrew installierte Google App Engine SDK / Go (Linux-Version) und Python sind nicht kompatibel

Dieser Artikel wurde während der Teilnahme an der GAE (Go / Python) Mokumoku-Studiengruppe in Yokohama Tanemaki, Band 16 --connpass verfasst.

Wenn Sie "goapp test" oder "goapp serve" mit installiertem Linuxbrew Python ausführen, wird die folgende Fehlermeldung angezeigt:

2015/04/18 16:18:46 appengine: not running under devappserver2; using some default configuration
INFO     2015-04-18 07:18:47,665 devappserver2.py:726] Skipping SDK update check.
WARNING  2015-04-18 07:18:47,665 devappserver2.py:742] DEFAULT_VERSION_HOSTNAME will not be set correctly with --port=0
WARNING  2015-04-18 07:18:47,867 simple_search_stub.py:1126] Could not read search indexes from /tmp/appengine.testapp.xxxx/search_indexes
INFO     2015-04-18 07:18:47,869 api_server.py:172] Starting API server at: http://localhost:43830
INFO     2016-04-18 07:18:47,869 api_server.py:588] Applying all pending transactions and saving the datastore
INFO     2015-04-18 07:18:47,870 api_server.py:591] Saving search indexes
Traceback (most recent call last):
  File "/home/xxxx/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 83, in <module>
    _run_file(__file__, globals())
  File "/home/xxxx/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 79, in _run_file
    execfile(_PATHS.script_file(script_name), globals_)
  File "/home/xxxx/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 985, in <module>
    main()
  File "/home/xxxx/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 978, in main
    dev_server.start(options)
  File "/home/xxxx/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 774, in start
    self._dispatcher.start(options.api_host, apis.port, request_data)
  File "/home/xxxx/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/dispatcher.py", line 182, in start
    _module, port = self._create_module(module_configuration, port)
  File "/home/xxxx/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/dispatcher.py", line 262, in _create_module
    threadsafe_override=threadsafe_override)
  File "/home/xxxx/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py", line 1102, in __init__
    super(AutoScalingModule, self).__init__(**kwargs)
  File "/home/xxxx/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/module.py", line 519, in __init__
    self._use_mtime_file_watcher)
  File "/home/xxxx/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/file_watcher.py", line 145, in get_file_watcher
    return _create_linux_watcher(directories)
  File "/home/xxxx/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/file_watcher.py", line 120, in _create_linux_watcher
    inotify_file_watcher.InotifyFileWatcher)
  File "/home/xxxx/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/file_watcher.py", line 92, in _create_watcher
    return watcher_class(directories)
  File "/home/xxxx/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/inotify_file_watcher.py", line 139, in __init__
    self._inotify_poll = select.poll()
AttributeError: 'module' object has no attribute 'poll'

Wenn Sie Python von Linuxbrew mit "Brew Deinstallation Python" löschen und Standard-Python verwenden, funktioniert es.

Was ist select.poll ()? Als ich es nachgeschlagen habe, wurde es wie folgt in die Python 2.7-Dokumentation geschrieben.

(Wird nicht von allen Betriebssystemen unterstützt)Gibt ein Abfrageobjekt zurück. Dieses Objekt kann Dateideskriptoren registrieren und die Registrierung aufheben, und ich für Dateideskriptoren/O Sie können das Auftreten von Ereignissen abfragen;Im Abschnitt Abfrageobjekte finden Sie die Methoden, die von den Abfrageobjekten bereitgestellt werden.

http://docs.python.jp/2/library/select.html

Aus irgendeinem Grund scheint Linuxbrews Python ohne diese Funktion zu kompilieren ...

Recommended Posts

Das mit Linuxbrew installierte Google App Engine SDK / Go (Linux-Version) und Python sind nicht kompatibel
Laufzeitversion der Google App Engine / Python-Standardumgebung
[Python] Führen Sie Flask in Google App Engine aus
Über das Problem, dass die Python-Version von Google App Engine nicht ineinander greift
Tweet (API 1.1) mit Google App Engine für Python
Integration von Google App Engine-Datenspeicher und Such-API
Verschiedene Memoranden bei Verwendung von SDK der LINE Messaging API mit Python (2.7.9) + Google App Engine
Stellen Sie die Django-Anwendung in Google App Engine (Python3) bereit.
Konstruktionsverfahren für die Google App Engine / Python-Entwicklungsumgebung (Ende 2014)
PIL in Python unter Windows8 (für Google App Engine)
Erste Schritte mit Google App Engine für Python und PHP
Verwendung von Django mit Google App Engine / Python