GVKun编程网logo

如何防止Google App Engine上的“导入错误:没有名为oauth2client.client的模块”?

24

在本文中,您将会了解到关于如何防止GoogleAppEngine上的“导入错误:没有名为oauth2client.client的模块”?的新资讯,并给出一些关于android–如何使用ClientID

在本文中,您将会了解到关于如何防止Google App Engine上的“导入错误:没有名为oauth2client.client的模块”?的新资讯,并给出一些关于android – 如何使用ClientID和ClientSecret在Phonegap中使用Angularjs登录Google OAuth2、App Engine上的Django 1.7“ ImportError:没有名为msvcrt的模块”、Django-导入错误:没有名为* .urls的模块、django导入错误-没有名为core.management的模块的实用技巧。

本文目录一览:

如何防止Google App Engine上的“导入错误:没有名为oauth2client.client的模块”?

如何防止Google App Engine上的“导入错误:没有名为oauth2client.client的模块”?

我们收到一个错误:

ImportError:没有名为OAuth2Client的模块

我们注意到有关该主题的数十个问题,许多未回答的问题,以及至少一个回答,描述了从Google App Engine SDK复制文件的解决方案。

但是,这种方法似乎很乏味,因为所有依赖项还不清楚。如果我们复制过来oauth2client然后运行,则下一个错误是缺少另一个模块。修复此问题,然后缺少另一个模块,依此类推,等等。

具有讽刺意味的是,我们可以在PyCharm中看到从Google App Engine SDK列出的所有所需文件和模块,但脚本似乎无法访问它们。

有没有更好的方法来提取oauth2clientPython在App Engine上运行所需的所有文件?

答案1

小编典典

答案是文件中的“供应商”。

我们根据此文档https://cloud.google.com/appengine/docs/python/tools/libraries27#vendoring
和此SO答案找到了解决此问题的快速方法。

  1. 在与app.yaml文件相同的文件夹中创建一个名为“ lib ”的新文件夹。(您可以命名其他名称。只需在下面使用该名称即可。)

  2. 在与app.yaml文件相同的文件夹中创建一个名为 appengine_config.py 的空文件

  3. 在该appengine_config.py文件中添加两行:

from google.appengine.ext import vendor vendor.add(''lib'')

  1. 在终端上,导航到包含该文件的目录,然后执行以下命令:

sudo pip install -t lib google-api-python-client

导入错误将消失,您还将拥有所有从属模块。

android – 如何使用ClientID和ClientSecret在Phonegap中使用Angularjs登录Google OAuth2

android – 如何使用ClientID和ClientSecret在Phonegap中使用Angularjs登录Google OAuth2

我正尝试使用 Angularjs(使用Ionic Framework)通过Google OAuth2从我的Phonegap应用程序登录.目前我正在使用 http://phonegap-tips.com/articles/google-api-oauth-with-phonegaps-inappbrowser.html进行登录.但是当我使用Angular-UI-Router for Ionic时,它正在创建非常难看的代码和相当难以理解的代码.

如果没有任何正确的答案,这个问题似乎正在蔓延.我希望现在应该解决. Google Angular Guys应该会有所帮助.
How to implement Google Auth in phonegap?

最接近的主题是How to use Google Login API with Cordova/Phonegap,但这不是angularjs的解决方案.

我不得不使用以下代码传输javascript变量值:

var el = document.getElementById('test');
        var scopeTest = angular.element(el).scope();
        scopeTest.$apply(function(){ 
            scopeTest.user = user;
            scopeTest.logged_in = true;
            scopeTest.name = user.name;
            scopeTest.email = user.email;
        });

解决方法

我做了这样的解决方案,其中TestCtrl是Login Button所在的Controller.有一个基于jquery的$.ajax调用混合,我将改变为angualar方式. google_call函数基本上调用google_api,这在上面提到的phonegap-tips中提到的链接中提到.
.controller('TestCtrl',function($scope,$ionicPopup) {
$scope.logged_in = false;
$scope.getMember = function(id) {
    console.log(id);
};
$scope.test = function(){
    $ionicPopup.alert({"title":"Clicked"});
}

$scope.call_google = function(){
    googleapi.authorize({
    client_id: 'CLIENT_ID',client_secret: 'CLIENT_SECRET',redirect_uri: 'http://localhost',scope: 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email'
    }).done(function(data) {
        accesstoken=data.access_token;
        // alert(accesstoken);
        // $loginStatus.html('Access Token: ' + data.access_token);
        console.log(data.access_token);
        //$ionicPopup.alert({"title":JSON.stringify(data)});
        $scope.getDataProfile();
    });
};
$scope.getDataProfile = function(){
    var term=null;
    //  alert("getting user data="+accesstoken);
    $.ajax({
           url:'https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token='+accesstoken,type:'GET',data:term,dataType:'json',error:function(jqXHR,text_status,strError){
           },success:function(data)
           {
           var item;

           console.log(JSON.stringify(data));
           // Save the userprofile data in your localStorage.
           window.localStorage.gmailLogin="true";
           window.localStorage.gmailID=data.id;
           window.localStorage.gmailEmail=data.email;
           window.localStorage.gmailFirstName=data.given_name;
           window.localStorage.gmailLastName=data.family_name;
           window.localStorage.gmailProfilePicture=data.picture;
           window.localStorage.gmailGender=data.gender;
           window.localStorage.gmailName=data.name;
           $scope.email = data.email;
           $scope.name = data.name;
           }
        });
        //$scope.disconnectUser(); //This call can be done later.
};
$scope.disconnectUser = function() {
  var revokeUrl = 'https://accounts.google.com/o/oauth2/revoke?token='+accesstoken;

  // Perform an asynchronous GET request.
  $.ajax({
    type: 'GET',url: revokeUrl,async: false,contentType: "application/json",dataType: 'jsonp',success: function(nullResponse) {
      // Do something Now that user is disconnected
      // The response is always undefined.
      accesstoken=null;
      console.log(JSON.stringify(nullResponse));
      console.log("-----signed out..!!----"+accesstoken);
    },error: function(e) {
      // Handle the error
      // console.log(e);
      // You Could point users to manually disconnect if unsuccessful
      // https://plus.google.com/apps
    }
  });
};
})

我正在为尝试使用Google OAuth2登录时面临类似问题的新手提供此答案.因此,我无耻地要求UpVotes,因为我也是新来的!

App Engine上的Django 1.7“ ImportError:没有名为msvcrt的模块”

App Engine上的Django 1.7“ ImportError:没有名为msvcrt的模块”

我正在尝试在Windows计算机上运行的Google App Engine开发服务器上将Django升级到1.7版。

尝试加载应用程序时,我从以下消息中得到以下异常doango\core\files\locks.py

ImportError: No module named msvcrt

相关的代码行是:

if os.name == 'nt':
    import msvcrt

我猜是因为App Engine的开发服务器未提供msvcrt的版本而引发异常,但是由于我的开发机是Windows,所以os.name仍然是'nt'

是否有解决方案或解决方法?

相关的堆栈跟踪:

 File "...\django\core\files\locks.py",line 30,in <module>
    import msvcrt
 File "D:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\python\sandbox.py",line 852,in load_module
    raise ImportError('No module named %s' % fullname)

Django-导入错误:没有名为* .urls的模块

Django-导入错误:没有名为* .urls的模块

我正在研究官方的Django教程,并使用Django
1.6.1版,Python 2.7.6对其稍作调整以适应我的需要。

我正要映射URL,但是当很明显其中有一个模块具有适当命名的文件时,我会不断收到“无模块命名为customers.urls”的错误,所以我真的迷失了什么我做错了

我最初的想法是,我需要在root / urls.py中导入与客户相关的内容,但是每种导入组合都会导致大致相同的错误,并且本教程没有说要这样做。

ROOT_URLCONF =’taco.urls’(taco是项目的名称)

我正在使用manage.py/runserver运行此程序,因此我知道并没有发生任何特殊的Web服务器骗局。我已经重启了好几次。

追溯可以证明,所有应用程序都已正确注册。

任何关于我忽略的东西的指针将不胜感激!

root / urls.py:

from django.conf.urls import patterns,include,url
from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns('',url(r'^customers/',include('customers.urls')),url(r'^admin/',include(admin.site.urls)),)

客户/urls.py:

from django.conf.urls import patterns,url;

from customers import views;

urlpatterns = ('',url(r'^$',views.index,name='index')
);

客户/views.py:

from django.shortcuts import render
from django.http import HttpResponse;

def index(request):
    return HttpResponse("Hello");

追溯

Environment:


Request Method: GET
Request URL: http://192.168.3.208:8000/customers/

Django Version: 1.6.1
Python Version: 2.7.6
Installed Applications:
('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','south','taco.customers','taco.inventory','taco.lookups','taco.orders')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware')


Traceback:
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
  99.                 resolver_match = resolver.resolve(request.path_info)
File "/usr/lib/python2.7/dist-packages/django/core/urlresolvers.py" in resolve
  337.             for pattern in self.url_patterns:
File "/usr/lib/python2.7/dist-packages/django/core/urlresolvers.py" in url_patterns
  365.         patterns = getattr(self.urlconf_module,"urlpatterns",self.urlconf_module)
File "/usr/lib/python2.7/dist-packages/django/core/urlresolvers.py" in urlconf_module
  360.             self._urlconf_module = import_module(self.urlconf_name)
File "/usr/lib/python2.7/dist-packages/django/utils/importlib.py" in import_module
  40.         __import__(name)
File "/var/project/taco/taco/urls.py" in <module>
  7.     url(r'^customers/',File "/usr/lib/python2.7/dist-packages/django/conf/urls/__init__.py" in include
  26.         urlconf_module = import_module(urlconf_module)
File "/usr/lib/python2.7/dist-packages/django/utils/importlib.py" in import_module
  40.         __import__(name)

Exception Type: ImportError at /customers/
Exception Value: No module named customers.urls

django导入错误-没有名为core.management的模块

django导入错误-没有名为core.management的模块

好的,我看到很多这些错误。我已经尝试了所有我想做的事情,但是还没有弄清楚。

我正在开发运行python 2.5和Django 1.3的开发服务器。在解压缩tar.gz下载文件后,使用python setup.py
install安装了Django 1.3。

一切正常,我很少需要运行,manage.py但是尝试使用新的staticfiles应用程序,并且遇到了问题。

python manage.py collectstatic
Traceback (most recent call last):
  File "manage.py",line 2,in <module>
    from django.core.management import execute_manager
ImportError: No module named core.management

好的,所以我有PATH问题。

从Django安装中,我再次检查site-packages目录。

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
/usr/lib/python2.5/site-packages

好的,让我们检查一下我拥有什么,回显$ PYTHON_PATH为空,因此我将其设置为

export PYTHON_PATH=/usr/lib/python2.5/site-packages/django

仍然没有运气。让我们检查sys.path怎么说

>>> import sys
>>> print sys.path
['','/usr/lib/python2.5','/usr/lib/python2.5/plat-linux2','/usr/lib/python2.5/lib-tk','/usr/lib/python2.5/lib-dynload','/usr/local/lib/python2.5/site-packages','/usr/lib/python2.5/site-packages','/usr/lib/python2.5/site-packages/PIL','/usr/lib/python2.5/site-packages/django','/var/lib/python-support/python2.5']

路径在那里,我什至用内容创建了/usr/lib/python2.5/site-packages/django.pth

cat /usr/lib/python2.5/site-packages/django.pth 
/usr/lib/python2.5/site-packages/django/

有人知道这里发生了什么吗?

我在通往的道路上发现了一个符号链接,但没有出现新的错误。

python manage.py collectstatic
Traceback (most recent call last):
  File "manage.py",line 14,in <module>
    execute_manager(settings)
  File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py",line 438,in execute_manager
    utility.execute()
  File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py",line 349,in execute
    version=get_version(),File "/usr/lib/python2.5/site-packages/django/__init__.py",line 12,in get_version
    from django.utils.version import get_svn_revision
ImportError: No module named utils.version

我还尝试创建一个新项目,以查看是否存在任何问题,并得到相同的utils.version错误。

副节点:#django的Unode帮助了我一点,在同一台计算机上设置了virtualenv并克服了错误,因此仍然不确定此处的实际安装情况如何,但似乎不在django项目中,而在django中/
python安装。

我们今天的关于如何防止Google App Engine上的“导入错误:没有名为oauth2client.client的模块”?的分享已经告一段落,感谢您的关注,如果您想了解更多关于android – 如何使用ClientID和ClientSecret在Phonegap中使用Angularjs登录Google OAuth2、App Engine上的Django 1.7“ ImportError:没有名为msvcrt的模块”、Django-导入错误:没有名为* .urls的模块、django导入错误-没有名为core.management的模块的相关信息,请在本站查询。

本文标签: