【问题标题】:python - " Import error no module named httplib2" in only some filespython - 仅在某些文件中“导入错误没有名为 httplib2 的模块”
【发布时间】:2016-01-11 05:37:57
【问题描述】:

当我在 quickStart.py 中导入 httplib2 并使用终端运行它时它可以工作。

现在我将 quickStart 导入另一个文件 main.py(Google 应用引擎 web 应用程序 python 文件)并尝试通过 localhost 加载页面,它显示“导入错误没有名为 httplib2 的模块”,而这两个文件位于同一目录中。 它显示以下错误:-

ERROR    2015-10-13 12:41:47,128 wsgi.py:263]

Traceback (most recent call last):
  File "C:\Program Files (x86)\google\google_appengine\google\appengine\runtime\wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "C:\Program Files (x86)\google\google_appengine\google\appengine\runtime\wsgi.py", line 299, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "C:\Program Files (x86)\google\google_appengine\google\appengine\runtime\wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "G:\dtuwiki\dtuwiki2\main.py", line 7, in <module>
    import quickStart
  File "G:\dtuwiki\dtuwiki2\quickStart.py", line 2, in <module>
    import httplib2
ImportError: No module named httplib2
INFO     2015-10-13 18:11:47,398 module.py:809] default: "GET / HTTP/1.1" 500 -

main.py

  import webapp2
    import jinja2
    import os 
    import cgi
    import quickStart
    template_dir = os.path.join(os.path.dirname(__file__), 'templates')


    root_dir = os.path.dirname(__file__)
    jinja_env = 

jinja2.Environment(loader=jinja2.FileSystemLoader([template_dir,root_dir]),autoescape=True)

    def escapeHTML(string):
        return cgi.escape(string , quote="True")


class Handler(webapp2.RequestHandler):
    def write(self,*a,**kw):
        #self.response.write(form %{"error":error})
        self.response.out.write(*a,**kw)
    def render_str(self,template,**params):
        t = jinja_env.get_template(template)
        return t.render(params)     
    def render(self , template ,**kw):
        self.write(self.render_str(template,**kw))

快速启动.py

from __future__ import print_function
import httplib2
import os

from apiclient import discovery
import oauth2client
from oauth2client import client
from oauth2client import tools

import datetime

try:
    import argparse
    flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args()
except ImportError:
    flags = None

SCOPES = 'https://www.googleapis.com/auth/calendar.readonly'
CLIENT_SECRET_FILE = 'client_secret.json'
APPLICATION_NAME = 'Google Calendar API Python Quickstart'


def get_credentials():

    home_dir = os.path.expanduser('~')  
    credential_dir = os.path.join(home_dir, '.credentials')
    if not os.path.exists(credential_dir):
        os.makedirs(credential_dir)
    credential_path = os.path.join(credential_dir,
                                   'calendar-python-quickstart.json')

    store = oauth2client.file.Storage(credential_path)
    credentials = store.get()
    if not credentials or credentials.invalid:
        flow = client.flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES)
        flow.user_agent = APPLICATION_NAME
        if flags:
            credentials = tools.run_flow(flow, store, flags)
        else: # Needed only for compatability with Python 2.6
            credentials = tools.run(flow, store)
        print('Storing credentials to ' + credential_path)
    return credentials

我也试过关注--

$ python -m pip install httplib2
Requirement already satisfied (use --upgrade to upgrade): httplib2 in /usr/local/lib/python2.7/site-packages
Cleaning up...

C:\WINDOWS\system32>python -m pip -V
pip 7.1.2 from C:\Python27\lib\site-packages (python 2.7)

C:\WINDOWS\system32>python -m pip list
google-api-python-client (1.4.2)
httplib2 (0.9.2)
Jinja2 (2.8)
oauth2client (1.5.1)
pip (7.1.2)
uritemplate (0.6)
virtualenv (13.1.2)

【问题讨论】:

    标签: python google-app-engine pip google-api-python-client httplib2


    【解决方案1】:

    Google App Engine 要求将任何第 3 方模块包含在应用程序源代码树中,以便将其部署到 App Engine。这意味着site-packages 中的项目不会被导入到在开发 SDK 下运行的应用程序中,您将看到与您遇到的类似的错误。

    Here are the docs 了解如何包含 httplib2 等库。

    简而言之,您需要pip install -t some_dir &lt;libname&gt;,然后将some_dir 添加到appengine_config.py 内的应用程序路径中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-09
      • 1970-01-01
      • 2016-07-11
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多