Cet article a été écrit lors de la participation au Groupe d'étude GAE (Go / Python) Mokumoku à Yokohama Tanemaki vol.16 --connpass.
Si vous exécutez goapp test
ou goapp serve
avec linuxbrew Python installé, vous obtiendrez l'erreur suivante:
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'
Si vous supprimez Python de linuxbrew avec brew uninstall python
et utilisez Python standard, cela fonctionnera.
Qu'est-ce que «select.poll ()»? Quand je l'ai recherché, il a été écrit dans la documentation Python 2.7 comme suit.
(Non pris en charge sur tous les systèmes d'exploitation)Renvoie un objet d'interrogation. Cet objet peut enregistrer et désenregistrer des descripteurs de fichiers, et moi pour les descripteurs de fichiers/O Vous pouvez interroger l'occurrence d'un événement;Consultez la section Objets d'interrogation pour les méthodes fournies par les objets d'interrogation.
http://docs.python.jp/2/library/select.html
Pour une raison quelconque, le Python de linuxbrew semble compiler sans cette fonction ...
Recommended Posts