Python:导入 xboxapi 时遇到问题
Python: Trouble importing xboxapi
我是 Python 的新手,我正在尝试使用 Xbox api 和 this Python 包装器编写一个简单的脚本。
我成功安装了 xboxapi 包装器,但是当我尝试使用包装器 Github 页面中的这个简单代码对其进行测试时,出现错误。
代码:
from xboxapi import XboxApi
api = XboxApi(api_key="Your API key")
profile_info = api.get_profile()
print(profile_info)
错误:
Traceback (most recent call last):
File "E:\ProgramFiles\Python 3.6\Scripts\xboxTest.py", line 1, in <module>
from xboxapi import XboxApi
ImportError: cannot import name 'XboxApi'
如果我对这个错误的理解正确,则似乎可以识别 xboxapi 包,但不能识别 class XboxApi。但是它确实在代码中包含 XboxApi class。
# -*- coding: utf-8 -*-
import requests
import json
class XboxApi:
# XboxApi key
api_key = ""
def __init__(self, api_key):
"""Only requires the XboxApi key"""
self.api_key = api_key
def get_profile(self):
"""Return information for current token profile"""
res = self.request("https://xboxapi.com/v2/profile")
return res.json()
def get_xuid(self):
"""Return your xuid"""
res = self.request("https://xboxapi.com/v2/accountXuid")
return res.json()
def get_messages(self):
"""Return your messages"""
res = self.request("https://xboxapi.com/v2/messages")
return res.json()
def get_conversations(self):
"""Return your messages"""
res = self.request("https://xboxapi.com/v2/conversations")
return res.json()
def get_xuid_by_gamertag(self, gamertag):
"""Return XUID by gamertag"""
res = self.request("https://xboxapi.com/v2/xuid/{}".format(gamertag))
return res.json()
def get_gamertag_by_xuid(self, xuid):
"""Return gamertag by XUID"""
res = self.request("https://xboxapi.com/v2/gamertag/{}".format(xuid))
return res.json()
def get_user_profile(self, xuid):
"""Return profile by XUID"""
res = self.request("https://xboxapi.com/v2/{}/profile".format(xuid))
return res.json()
def get_user_gamercard(self, xuid):
"""Return gamercard by XUID"""
res = self.request("https://xboxapi.com/v2/{}/gamercard".format(xuid))
return res.json()
def get_user_presence(self, xuid):
"""Return current presence information by XUID"""
res = self.request("https://xboxapi.com/v2/{}/presence".format(xuid))
return res.json()
def get_user_activity(self, xuid):
"""Return current activity information by XUID"""
res = self.request("https://xboxapi.com/v2/{}/activity".format(xuid))
return res.json()
def get_user_activity_recent(self, xuid):
"""Return recent activity information by XUID"""
res = self.request("https://xboxapi.com/v2/{}/activity/recent".format(xuid))
return res.json()
def get_user_friends(self, xuid):
"""Return friends by XUID"""
res = self.request("https://xboxapi.com/v2/{}/friends".format(xuid))
return res.json()
def get_user_followers(self, xuid):
"""Return followers by XUID"""
res = self.request("https://xboxapi.com/v2/{}/followers".format(xuid))
return res.json()
def get_recent_players(self):
"""Return recent players by XUID"""
res = self.request("https://xboxapi.com/v2/recent-players")
return res.json()
def get_user_gameclips(self, xuid):
"""Return game clips by XUID"""
res = self.request("https://xboxapi.com/v2/{}/game-clips".format(xuid))
return res.json()
# continue with #16
def send_message(self, message, xuids=[]):
"""Send a message to a set of user(s)"""
headers = {
"X-AUTH": self.api_key,
"Content-Type": "application/json"
}
payload = {
"message": message,
"to": []
}
for xuid in xuids:
payload["to"].append(xuid)
res = requests.post("https://xboxapi.com/v2/messages", headers=headers, data=json.dumps(payload))
res.json()
def request(self, url):
"""Wrapper on the requests.get"""
headers = {"X-AUTH": self.api_key}
res = requests.get(url, headers=headers)
return res
有没有我遗漏的简单的东西?
xboxapi 是一个包,所以当您这样做时
from xboxapi import ZooLander
您正在尝试从 xboxapi 包中导入 ZooLander class。问题是,ZooLander class 不在 xboxapi 包中,它在包内的模块(Python "file" 的说法)中。有几种方法可以解决这个问题。您可以导入模块并使用点符号来引用 class:
from xboxapi import StillerMovies
z = StillerMovies.ZooLander()
或者您可以像这样直接导入 class:
from xboxapi.StillerMovies import ZooLander
z = ZooLander()
以上假设 class ZooLander 位于 xboxapi 包顶部名为 StillerMovies.py 的文件中。
此软件包的功能与许多其他软件包有所不同。您需要这样导入:
from xboxapi.xbox_api import XboxApi
api = XboxApi(api_key="Your API key")
我是 Python 的新手,我正在尝试使用 Xbox api 和 this Python 包装器编写一个简单的脚本。
我成功安装了 xboxapi 包装器,但是当我尝试使用包装器 Github 页面中的这个简单代码对其进行测试时,出现错误。
代码:
from xboxapi import XboxApi
api = XboxApi(api_key="Your API key")
profile_info = api.get_profile()
print(profile_info)
错误:
Traceback (most recent call last):
File "E:\ProgramFiles\Python 3.6\Scripts\xboxTest.py", line 1, in <module>
from xboxapi import XboxApi
ImportError: cannot import name 'XboxApi'
如果我对这个错误的理解正确,则似乎可以识别 xboxapi 包,但不能识别 class XboxApi。但是它确实在代码中包含 XboxApi class。
# -*- coding: utf-8 -*-
import requests
import json
class XboxApi:
# XboxApi key
api_key = ""
def __init__(self, api_key):
"""Only requires the XboxApi key"""
self.api_key = api_key
def get_profile(self):
"""Return information for current token profile"""
res = self.request("https://xboxapi.com/v2/profile")
return res.json()
def get_xuid(self):
"""Return your xuid"""
res = self.request("https://xboxapi.com/v2/accountXuid")
return res.json()
def get_messages(self):
"""Return your messages"""
res = self.request("https://xboxapi.com/v2/messages")
return res.json()
def get_conversations(self):
"""Return your messages"""
res = self.request("https://xboxapi.com/v2/conversations")
return res.json()
def get_xuid_by_gamertag(self, gamertag):
"""Return XUID by gamertag"""
res = self.request("https://xboxapi.com/v2/xuid/{}".format(gamertag))
return res.json()
def get_gamertag_by_xuid(self, xuid):
"""Return gamertag by XUID"""
res = self.request("https://xboxapi.com/v2/gamertag/{}".format(xuid))
return res.json()
def get_user_profile(self, xuid):
"""Return profile by XUID"""
res = self.request("https://xboxapi.com/v2/{}/profile".format(xuid))
return res.json()
def get_user_gamercard(self, xuid):
"""Return gamercard by XUID"""
res = self.request("https://xboxapi.com/v2/{}/gamercard".format(xuid))
return res.json()
def get_user_presence(self, xuid):
"""Return current presence information by XUID"""
res = self.request("https://xboxapi.com/v2/{}/presence".format(xuid))
return res.json()
def get_user_activity(self, xuid):
"""Return current activity information by XUID"""
res = self.request("https://xboxapi.com/v2/{}/activity".format(xuid))
return res.json()
def get_user_activity_recent(self, xuid):
"""Return recent activity information by XUID"""
res = self.request("https://xboxapi.com/v2/{}/activity/recent".format(xuid))
return res.json()
def get_user_friends(self, xuid):
"""Return friends by XUID"""
res = self.request("https://xboxapi.com/v2/{}/friends".format(xuid))
return res.json()
def get_user_followers(self, xuid):
"""Return followers by XUID"""
res = self.request("https://xboxapi.com/v2/{}/followers".format(xuid))
return res.json()
def get_recent_players(self):
"""Return recent players by XUID"""
res = self.request("https://xboxapi.com/v2/recent-players")
return res.json()
def get_user_gameclips(self, xuid):
"""Return game clips by XUID"""
res = self.request("https://xboxapi.com/v2/{}/game-clips".format(xuid))
return res.json()
# continue with #16
def send_message(self, message, xuids=[]):
"""Send a message to a set of user(s)"""
headers = {
"X-AUTH": self.api_key,
"Content-Type": "application/json"
}
payload = {
"message": message,
"to": []
}
for xuid in xuids:
payload["to"].append(xuid)
res = requests.post("https://xboxapi.com/v2/messages", headers=headers, data=json.dumps(payload))
res.json()
def request(self, url):
"""Wrapper on the requests.get"""
headers = {"X-AUTH": self.api_key}
res = requests.get(url, headers=headers)
return res
有没有我遗漏的简单的东西?
xboxapi 是一个包,所以当您这样做时
from xboxapi import ZooLander
您正在尝试从 xboxapi 包中导入 ZooLander class。问题是,ZooLander class 不在 xboxapi 包中,它在包内的模块(Python "file" 的说法)中。有几种方法可以解决这个问题。您可以导入模块并使用点符号来引用 class:
from xboxapi import StillerMovies
z = StillerMovies.ZooLander()
或者您可以像这样直接导入 class:
from xboxapi.StillerMovies import ZooLander
z = ZooLander()
以上假设 class ZooLander 位于 xboxapi 包顶部名为 StillerMovies.py 的文件中。
此软件包的功能与许多其他软件包有所不同。您需要这样导入:
from xboxapi.xbox_api import XboxApi
api = XboxApi(api_key="Your API key")