Python 3.4导入gcm引发SystemError:父模块''未加载,无法执行相对导入

时间:2015-08-16 13:49:21

标签: python-3.x google-cloud-messaging

我尝试导入gcm如下:

from . import gcm 

我得到了:

SystemError: Parent module '' not loaded, cannot perform relative import

我也尝试过:

from gcm import GCM

by pip install python-gcm但是我得到了以下错误: 模块'对象没有属性' GCM

1 个答案:

答案 0 :(得分:0)

让它暂时运行

  1. python-gcm取决于requests包。确保已安装。调用pip install requests进行安装。
  2. 下载master branch
  3. 的ZIP存档
  4. 将档案解压缩到python-gcm-master文件夹。
  5. 修补文件python-gcm-master/gcm/__init__.py。使用

    import gcm
    
    #GCM = gcm.GCM
    

    而不是

    import gcm
    
    GCM = gcm.GCM
    
  6. 在此文件夹中创建一个python文件test.py.该文件应包含python-gcm包中的示例代码:

    from gcm.gcm import GCM
    
    gcm = GCM(API_KEY)
    data = {'param1': 'value1', 'param2': 'value2'}
    
    # Plaintext request
    reg_id = '12'
    gcm.plaintext_request(registration_id=reg_id, data=data)
    
    # JSON request
    reg_ids = ['12', '34', '69']
    response = gcm.json_request(registration_ids=reg_ids, data=data)
    
    # Extra arguments
    res = gcm.json_request(
        registration_ids=reg_ids, data=data,
        collapse_key='uptoyou', delay_while_idle=True, time_to_live=3600
    )
    
  7. 使用python3 test.py运行此文件。请注意,该示例使用的是from gcm.gcm import GCM,而不是默认的from gcm import GCM

  8. 如果抛出gcm.gcm.GCMAuthenticationException,您可以看到它已正确导入,您需要调整API_KEY。根据您的需要调整test.py文件。
  9. 让它永久运行

    就您尝试相对导入而言,我认为您已经遇到issue 65。显然他们打破了python3的导入机制。但是,它在python2上默认工作,但它与python3有关。问题跟踪器中的问题仍然存在。

相关问题