You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移setup.py到pyproject.toml后,pip安装aanalytics2仅生成dist-info致无法导入

问题原因及修复方案

核心问题:包源码未被正确识别

你的pyproject.toml里[tool.setuptools.packages.find]的where参数配置错误,导致setuptools找不到实际的包代码。

当前错误配置:

[tool.setuptools.packages.find]
where = ["aanalytics2"]

你的pyproject.toml位于./aanalytics2/目录下,而包源码就在该目录下的aanalytics2/子文件夹里,所以where应该指向当前目录(.),而非子目录名。

其他需修正的配置项

  1. package-data 包名占位符错误
    配置里的mypkg是默认占位符,要替换成你的实际包名aanalytics2,才能正确包含pickle文件:

    [tool.setuptools.package-data]
    aanalytics2 = ["*.pickle"]
    
  2. 移除多余的optional-dependencies配置
    [project.optional-dependencies]下的dynamic = ["version"]完全多余,直接删掉——版本动态配置只需要在[project]下声明一次即可。

  3. license与classifiers不一致
    你在[project]里声明的是Apache License 2.0,但classifiers里写的是GPLv3,建议统一成其中一个,避免混淆。

  4. 依赖项优化

    • pathlib是Python 3.4+标准库,无需作为依赖声明;
    • pytest是测试依赖,应该放到[project.optional-dependencies]的测试分组里,而非主依赖:
      [project.optional-dependencies]
      test = ["pytest"]
      

修正后的完整pyproject.toml示例

[build-system]
requires = ["setuptools", "setuptools-scm"]
build-backend = "setuptools.build_meta"

[project]
name = "aanalytics2"
authors = [
    {name = "Julien Piccini", email = "piccini.julien@gmail.com"},
]
description = "Adobe Analytics API 2.0 and 1.4 python wrapper"
readme = "README.md"
requires-python = ">=3.7"
keywords = ["adobe", "analytics", "API", "python"]
license = {text = "Apache License 2.0"}
classifiers = [
    "Intended Audience :: Developers",
    "License :: OSI Approved :: Apache Software License",
    "Operating System :: OS Independent",
    "Programming Language :: Python",
    "Topic :: Scientific/Engineering :: Information Analysis",
    "Programming Language :: Python :: 3.7",
    "Programming Language :: Python :: 3.8",
    "Programming Language :: Python :: 3.9",
    "Development Status :: 4 - Beta"
]
dependencies = [
    'pandas>=0.25.3',
    'pathlib2; python_version < "3.4"',
    'requests',
    'PyJWT[crypto]',
    "dicttoxml",
    "openpyxl>2.6.0"
]
dynamic = ["version"]

[project.urls]
homepage = "https://github.com/pitchmuc/adobe-analytics-api-2.0"
changelog = "https://github.com/pitchmuc/adobe-analytics-api-2.0/blob/master/docs/releases.md"

[tool.setuptools]
include-package-data = true

[tool.setuptools.packages.find]
where = ["."]

[tool.setuptools.package-data]
aanalytics2 = ["*.pickle"]

[project.optional-dependencies]
test = ["pytest"]

验证修复效果

  1. 先卸载已安装的错误版本:pip uninstall -y aanalytics2
  2. 在pyproject.toml所在目录执行本地安装:pip install .
  3. 检查site-packages目录,现在应该同时存在aanalytics2/包文件夹和aanalytics2-0.3.4.dist-info/文件夹
  4. 测试导入:python -c "import aanalytics2; print(aanalytics2.__version__)"

内容的提问来源于stack exchange,提问作者Pitchkrak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 15:54:57