2016-09-04 2 views
0

App Engine에서 실행되는 Flask 기반 애플리케이션의 단위 테스트를 작성하고 있습니다.App Engine 모듈 가져 오기 문제

documentation 당, 나는 다음과 같은 라인

import sys 

sys.path.insert(1, '/Users/vinay/tools/google_appengine') 
sys.path.insert(1, '/Users/vinay/tools/google_appengine/lib/yaml/lib') 
sys.path.insert(1, '/Users/vinay/App-Engine/zion-alpha/lib') 

여기에 전체 테스트 파일이

을 포함했다.

import sys 

sys.path.insert(1, '/Users/vinay/tools/google_appengine') 
sys.path.insert(1, '/Users/vinay/tools/google_appengine/lib/yaml/lib') 
sys.path.insert(1, '/Users/vinay/App-Engine/zion-alpha/lib') 

from pprint import pprint 
pprint(sys.path) 

from google.appengine.ext import ndb 
from webtest import TestApp 
from app import create_app 
from Tests.base_test import TestBase 

app = TestApp(create_app()) 


class AppTest(TestBase): 
    def test_index(self): 
     response = app.get('/') 
     self.assertEqual(response.content_type, 'text/plain') 
     self.assertEqual('Hello World', response.body) 

이 스크립트를 실행할 때 다음 오류가 발생합니다.

/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 /Applications/PyCharm.app/Contents/helpers/pycharm/utrunner.py /Users/vinay/App-Engine/zion-alpha/Tests/handler_tests.py true 
Testing started at 10:31 AM ... 
Traceback (most recent call last): 
    File "/Applications/PyCharm.app/Contents/helpers/pycharm/utrunner.py", line 121, in <module> 
    modules = [loadSource(a[0])] 
    File "/Applications/PyCharm.app/Contents/helpers/pycharm/utrunner.py", line 43, in loadSource 
    module = imp.load_source(moduleName, fileName) 
    File "/Users/vinay/App-Engine/zion-alpha/Tests/handler_tests.py", line 10, in <module> 
    from google.appengine.ext import ndb 
ImportError: No module named appengine.ext 
['/Users/vinay/App-Engine/zion-alpha/Tests', 
'/Users/vinay/App-Engine/zion-alpha/lib', 
'/Users/vinay/tools/google_appengine/lib/yaml/lib', 
'/Users/vinay/tools/google_appengine', 
'/Library/Python/2.7/site-packages/python_gflags-2.0-py2.7.egg', 
'/Library/Python/2.7/site-packages/xunitparser-1.3.3-py2.7.egg', 
'/Library/Python/2.7/site-packages/setuptools-20.6.7-py2.7.egg', 
'/Library/Python/2.7/site-packages', 
'/Users/vinay/tools/google_appengine/lib/apiclient', 
'/Users/vinay/tools/google_appengine/lib/markupsafe-0.15', 
'/Users/vinay/tools/google_appengine/lib/concurrent', 
'/Users/vinay/tools/google_appengine/lib/distutils', 
'/Users/vinay/tools/google_appengine/lib/httplib2', 
'/Users/vinay/tools/google_appengine/lib/fancy_urllib', 
'/Users/vinay/tools/google_appengine/lib/oauth2client', 
'/Users/vinay/tools/google_appengine/lib/cacerts', 
'/Users/vinay/tools/google_appengine/lib/requests', 
'/Users/vinay/tools/google_appengine/lib/cherrypy', 
'/Users/vinay/tools/google_appengine/lib/ipaddr', 
'/Users/vinay/tools/google_appengine/lib/prettytable', 
'/Users/vinay/tools/google_appengine/lib/grizzled', 
'/Users/vinay/App-Engine/zion-alpha/lib', 
'/Users/vinay/tools/google_appengine/lib/rsa', 
'/Users/vinay/tools/google_appengine/lib/oauth2', 
'/Users/vinay/tools/google_appengine/lib/pyasn1', 
'/Users/vinay/tools/google_appengine/lib/sqlcmd', 
'/Users/vinay/tools/google_appengine/lib/webob-1.2.3', 
'/Users/vinay/tools/google_appengine/lib/antlr3', 
'/Users/vinay/tools/google_appengine/lib/jinja2-2.6', 
'/Users/vinay/tools/google_appengine/lib/endpoints-1.0', 
'/Users/vinay/tools/google_appengine/lib/graphy', 
'/Users/vinay/tools/google_appengine/lib/websocket', 
'/Users/vinay/tools/google_appengine/lib/google-api-python-client', 
'/Users/vinay/tools/google_appengine/lib/setuptools-0.6c11', 
'/Users/vinay/tools/google_appengine/lib/yaml-3.10', 
'/Users/vinay/tools/google_appengine/lib/docker', 
'/Users/vinay/tools/google_appengine', 
'/Users/vinay/tools/google_appengine/lib/mox', 
'/Users/vinay/tools/google_appengine/lib/django-1.9', 
'/Users/vinay/tools/google_appengine/lib/six', 
'/Users/vinay/tools/google_appengine/lib/webapp2-2.5.2', 
'/Users/vinay/tools/google_appengine/lib/deprecated_enum', 
'/Users/vinay/tools/google_appengine/lib/portpicker', 
'/Users/vinay/tools/google_appengine/lib/argparse', 
'/Users/vinay/tools/google_appengine/lib/uritemplate', 
'/Users/vinay/tools/google_appengine/lib/protorpc-1.0', 
'/Users/vinay/tools/google_appengine/lib/PyAMF-0.7.2', 
'/Users/vinay/tools/google_appengine/lib/simplejson', 
'/Users/vinay/App-Engine/zion-alpha', 
'/Users/vinay/tools/google_appengine/lib/PyAMF-0.6.1', 
'/Users/vinay/tools/google_appengine/lib/pyasn1_modules', 
'/Users/vinay/tools/google_appengine/lib/python-gflags', 
'/Applications/PyCharm.app/Contents/helpers/pycharm', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', 
'/var/root/Library/Python/2.7/lib/python/site-packages', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC', 
'/Library/Python/2.7/site-packages'] 

Process finished with exit code 1 

패키지는 올바른 위치에 있습니다.

bash-3.2$ ls 
google_appengine  google_appengine_1.9.40.zip 
bash-3.2$ pwd 
/Users/vinay/tools 
bash-3.2$ 

답변

0

당신이 생각하는 곳에 google_appengine 패키지가없는 것처럼 보입니다. 존재하지 않는 경로를 sys 경로에 추가하려고하면 오류가 표시되지 않습니다. 경로 5와 7 사이에 다음을 추가하여 경로를 확인하십시오.

from pprint import pprint 
pprint(sys.path) 

경로에 두 개 이상의 appengine pack이 있는지 확인하십시오. 각 항목을 탐색하여 실제로 있는지 확인하십시오.

+0

패키지가 올바른 위치에 있습니다. 질문에 대한 업데이트를 참조하십시오. –