如何从Python中的不同模块导入类

plicqrtu  于 2023-10-21  发布在  Python
关注(0)|答案(2)|浏览(160)

这就是我得到的错误。我在这里做错了什么,正如我在上一个问题中所说的,我对Python非常陌生,任何建议/帮助都将非常感谢。所有与此相关的python文件都在同一个文件夹中,所以我不知道是什么原因造成的?我刚才读到的内容是关于我的文件名之类的,但是我修改了好几次,仍然得到同样的错误。

Traceback (most recent call last):
  File "C:\Users\Student\Desktop\python-ig\main.py", line 5, in <module>
    from GTA import gta_post_request
  File "C:\Users\Student\Desktop\python-ig\GTA.py", line 3, in <module>
    from MS import MultiSession
ImportError: cannot import name 'MultiSession' from 'MS' (C:\Users\Student\Desktop\python-ig\MS.py

这段代码是用来替换session.get或session.post为multi_session.get或multi_session.post的

import requests
import json

class MultiSession:
    def __init__(self, session_cookie_file):
        self.session_cookie_file = session_cookie_file
        self.sessions = self.load_sessions()

    def load_sessions(self):
        with open(self.session_cookie_file, "r") as file:
            session_cookies = json.load(file)

        sessions = []

        for cookie in session_cookies:
            session = requests.Session()
            session.cookies.update(cookie)
            sessions.append(session)

        return sessions

    def get(self, url, **kwargs):
        responses = []
        for session in self.sessions:
            response = session.get(url, **kwargs)
            responses.append(response)
        return responses

    def post(self, url, data=None, json=None, **kwargs):
        responses = []
        for session in self.sessions:
            response = session.post(url, data=data, json=json, **kwargs)
            responses.append(response)
        return responses

老实说,我还没有尝试任何东西来修复它,因为我不能在所有弄清楚为什么我不能进口这一点。我刚刚读了一些有人问这个问题,但我没有得到一个足够明确的答案,我理解,我不能很好地理解指示,所以最好的选择,以帮助我是给予一个例子。

t8e9dugd

t8e9dugd1#

为了解决这个问题,我不得不将文件的名称更改为Python搜索路径中没有的名称,例如macs.py,因为MS已经是一个Python模块。

kmpatx3s

kmpatx3s2#

当您无法从另一个模块导入对象时,尽管该对象在其源文件中定义,但可能会发生加载了不正确的文件。要了解模块实际上是从哪个文件导入的,可以检查其__file__属性:

import MS
print(MS.__file__)

相关问题