ImportError: 无法从 'plaid' 导入 'Client

-1 投票
1 回答
67 浏览
提问于 2025-04-14 18:25

我一直在努力寻找答案。我想把Plaid整合到我的Django项目中,但我总是遇到同样的错误。我使用的是Python 3.11和Plaid 19.0.0。

我尝试了各种代码,但我的问题似乎与Plaid的客户端库有关。我在想有没有人遇到过类似的情况。我试过使用虚拟环境和卸载,但都没有解决问题。

Plaid-python这个包在我的Python库中,显示如下:

ImportError: cannot import name 'Client' from 'plaid' (/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/plaid/__init__.py)

init.py文件是:


"""
    The Plaid API

    The Plaid REST API. Please see https://plaid.com/docs/api for more details.  # noqa: E501

    The version of the OpenAPI document: 2020-09-14_1.496.2
    Generated by: https://openapi-generator.tech
"""


__version__ = "19.0.0"

# import ApiClient
from plaid.api_client import ApiClient

# import Configuration
from plaid.configuration import Configuration
# import Environments
from plaid.configuration import Environment

# import exceptions
from plaid.exceptions import OpenApiException
from plaid.exceptions import ApiAttributeError
from plaid.exceptions import ApiTypeError
from plaid.exceptions import ApiValueError
from plaid.exceptions import ApiKeyError
from plaid.exceptions import ApiException

我尝试运行的文件是这个,但我试过很多函数,发现问题不在函数上,而是在导入语句上:

from plaid import Client
from django.shortcuts import render, redirect

def plaid_link_view(request):
    # Initialize Plaid client
    client = Client(client_id=PLAID_CLIENT_ID, secret=PLAID_SECRET, environment=PLAID_ENV)

    # Create Link token for user interaction
    link_token_create_response = client.Link.Token.create(
        user={
            "client_user_id": request.user.id,  # Replace with user identification method
        },
        products=["transactions"],  # Adjust products based on your needs
    )
    link_token = link_token_create_response['link_token']

    # Render context with link_token for frontend integration
    context = {
        'link_token': link_token,
    }
    return render(request, 'plaid_link.html', context)

任何帮助都会非常感激。

1 个回答

1

根据文档的说明,它应该看起来像这样:

from django.shortcuts import render
from plaid import ApiClient, Configuration
from plaid.api.plaid_api import PlaidApi


def plaid_link_view(request):
    # Initialize Plaid client
    configuration = Configuration(
        host=PLAID_ENV,
        api_key={
            "clientId": PLAID_CLIENT_ID,
            "secret": PLAID_SECRET,
        },
    )
    api_client = ApiClient(configuration)
    client = PlaidApi(api_client)
    # Create Link token for user interaction
    link_token_create_response = client.link_token_create(
        user={
            "client_user_id": request.user.id,  # Replace with user identification method
        },
        products=["transactions"],  # Adjust products based on your needs
    )
    link_token = link_token_create_response["link_token"]

    # Render context with link_token for frontend integration
    context = {
        "link_token": link_token,
    }
    return render(request, "plaid_link.html", context)

你可能在跟一个过时的教程,因为这个接口在三年前就改过了

撰写回答