Nose GAE: невозможно импортировать dev_appserver, но движок приложения все еще находится в PYTHONPATH

Я получаю следующую ошибку при попытке запустить тест на носу из моего проекта GAE:

nosetests --nologcapture --with-gae --without-sandbox --gae-lib-root=/Users/dsinha/Dropbox/code/google-cloud-sdk/platform/google_appengine

но я получаю следующую ошибку:

Traceback (most recent call last):
  File "/usr/local/bin/nosetests", line 8, in <module>
    load_entry_point('nose==1.3.4', 'console_scripts', 'nosetests')()
  File "/Library/Python/2.7/site-packages/nose/core.py", line 121, in __init__
    **extra_args)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/main.py", line 94, in __init__
    self.parseArgs(argv)
  File "/Library/Python/2.7/site-packages/nose/core.py", line 145, in parseArgs
    self.config.configure(argv, doc=self.usage())
  File "/Library/Python/2.7/site-packages/nose/config.py", line 346, in configure
    self.plugins.configure(options, self)
  File "/Library/Python/2.7/site-packages/nose/plugins/manager.py", line 284, in configure
    cfg(options, config)
  File "/Library/Python/2.7/site-packages/nose/plugins/manager.py", line 99, in __call__
    return self.call(*arg, **kw)
  File "/Library/Python/2.7/site-packages/nose/plugins/manager.py", line 167, in simple
    result = meth(*arg, **kw)
  File "/Library/Python/2.7/site-packages/nosegae.py", line 87, in configure
    from google.appengine.tools import old_dev_appserver as dev_appserver
ImportError: cannot import name old_dev_appserver

Sys.path гласит:

'/Users/dsinha/Downloads/eclipse/plugins/org.python.pydev_3.9.0.201411111611/pysrc', '/ Users / dsinha / Dropbox / code / google-cloud-sdk / platform / google_appengine / lib / antlr3', '/ Users / dsinha / Dropbox / code / google-cloud-sdk / platform / google_appengine / lib / fancy_urllib', '/ Users / dsinha / Dropbox / code / google-cloud-sdk / platform / google_appengine / lib / ipaddr', '/Users/dsinha/Dropbox/code/google-cloud-sdk/platform/google_appengine/lib/yaml-3.10', '/ Users / dsinha / Dropbox / code / google-cloud-sdk / platform / google_appengine / lib / rsa ',' / Users / dsinha / Dropbox / code / google-cloud-sdk / platform / google_appengine / lib / pyasn1 ',' / Users / dsinha / Dropbox / code / google-cloud-sdk / platform / google_appengine / lib / pyasn1_modules ',' / Users / dsinha / Dropbox / code / google-cloud-sdk / platform / google_appengine ',' / Users / dsinha / Dropbox / code / google-cloud-sdk / platform / google_appengine / lib / simplejson ',' / Users / dsinha / Dropbox / code / google-cloud-sdk / platform / google_appengine / lib / django-1.4 ',' / Users / dsinha / Dropbox / code / google-cloud-sdk / platform / goo ...

поэтому библиотеки движка приложения должны быть втянуты. На самом деле его сначала не удалось вытащить dev_appserver, а затем попытаться и не удалось вытащить old_dev_appserver

Каталог внутри файла appengine / lib:

bash-3.2$ ls
__init__.py                     appcfg.py                       backends_xml_parser.py          dispatch_xml_parser.py          handler_generator.py            php_cli.py                      value_mixin.pyc
__init__.pyc                    appcfg_java.py                  boolean_action.py               docker                          handler_generator.pyc           queue_xml_parser.py             web_xml_parser.py
adaptive_thread_pool.py         appengine_rpc.py                boolean_action.pyc              dos_xml_parser.py               jarfile.py                      queue_xml_parser.pyc            web_xml_parser.pyc
api_server.py                   appengine_rpc.pyc               bulkload_client.py              download_appstats.py            java_quickstart.py              remote_api_shell.py             xml_parser_utils.py
app_engine_config_exception.py  appengine_rpc_httplib2.py       bulkloader.py                   endpointscfg.py                 java_quickstart.pyc             requeue.py                      xml_parser_utils.pyc
app_engine_config_exception.pyc augment_mimetypes.py            cron_xml_parser.py              gen_protorpc.py                 java_utils.py                   sdk_update_checker.py           yaml_translator.py
app_engine_web_xml_parser.py    augment_mimetypes.pyc           dev-channel-js.js               handler.py                      java_utils.pyc                  sdk_update_checker.pyc          yaml_translator.pyc
app_engine_web_xml_parser.pyc   backends_conversion.py          devappserver2                   handler.pyc                     os_compat.py                    value_mixin.py
bash-3.2$ pwd
/Users/dsinha/Dropbox/code/google-cloud-sdk/platform/google_appengine/google/appengine/tools

Я также попытался найти модули, доступные в пакете google.appengine.tools:

>>> import pkgutil
>>> [name for _, name, _ in pkgutil.iter_modules(['testpkg'])]
[]

Эта проблема возникла после того, как я обновился до App Engine 1.9.10 (чтобы использовать функции асинхронного поиска). В проблеме, которая, как мне кажется, связана, когда я пытаюсь запустить сервер отладки из PyDev, он просто автоматически завершается при любом запросе страницы (localhost: 8080).

Однако запуск dev_appserver . из командной строки работает нормально.


person Debnath Sinha    schedule 07.12.2014    source источник
comment
Найдите old_dev_appserver.py в /Users/dsinha/Dropbox/code/google-cloud-sdk/platform/google_appengine, чтобы убедиться, что вы используете правильную версию GAE.   -  person Dmytro Sadovnychyi    schedule 08.12.2014
comment
Хороший улов! Итак, в примечаниях к выпуску 1.9.17 говорится, что они удалили old_dev_appserver, но реальный вопрос в том, почему он не может импортировать dev_appserver в первую очередь ..._ 1_ содержит dev_appserver.py, но google_appengine/google/appengine/tools содержит только файл с именем devappserver2.py . Но у носега есть черта from google.appengine.tools import dev_appserver Может ли быть, что у носега сломалась последняя версия GAE?   -  person Debnath Sinha    schedule 08.12.2014
comment
Хорошо, по-видимому, да! github.com/Trii/NoseGAE/issues/6   -  person Debnath Sinha    schedule 08.12.2014
comment
Я постараюсь исправить это.   -  person Dmytro Sadovnychyi    schedule 08.12.2014
comment
Могу ли я тем временем перейти на версию 1.9.10? Мне кажется, что я обновляюсь только с gcloud components update, могу ли я как-то понизить его? Спасибо, что взглянули на это!   -  person Debnath Sinha    schedule 08.12.2014
comment
Возьмите здесь cloud.google.com/appengine/downloads   -  person Dmytro Sadovnychyi    schedule 08.12.2014


Ответы (1)


Nose-GAE сломался с App Engine 1.9.17: https://github.com/Trii/NoseGAE/issues/6 При переходе на версию 1.9.15 проблема временно исчезла, пока она не была решена с помощью носа-гае.

person Debnath Sinha    schedule 08.12.2014