Python setuptools:包目录不存在

我有一个包含此setup.py文件的项目:


import setuptools


with open("README.md", "r") as fh:

    long_description = fh.read()


setuptools.setup(

    name="",

    version="0.0.1",

    author="",

    author_email="",

    description="",

    long_description=long_description,

    long_description_content_type="text/markdown",

    packages=setuptools.find_packages(where="./src", exclude=("./tests",)),

    classifiers=[

        "Programming Language :: Python :: 3",

        "License :: OSI Approved :: MIT License",

        "Operating System :: OS Independent",

    ],

    python_requires='>=3.8',

)

这是我的项目目录结构(前两层):


$ tree -L 2

.

├── README.md

├── setup.py

├── src

│   └── my_pkg

└── tests

    ├── conftest.py

    ├── data

    ├── __init__.py

    ├── integration

    ├── __pycache__

    └── unit

当我运行任何 setuptools 命令时,出现以下错误:


$ python setup.py build

running build

running build_py

error: package directory 'my_pkg' does not exist

python setup.py develop对于其他命令(如和 )也会发生同样的情况python setup.py bdist-wheel。


我怀疑它与目录有关srcfind_packages(where="./src")setup.py. 但是,我一直在关注文档,并且看起来确实my_pkg在某个时候发现了该模块。


为什么build_py找不到呢?


偶然的你
浏览 139回答 1
1回答

绝地无双

find_packages()自动生成包名。也就是说,在您的情况下,它所做的只是生成['my_pkg']。它实际上并没有告诉setup()在哪里找到my_pkg,只是它应该期望找到一个my_pkg在某处调用的包。您必须单独告诉setup()它应该在哪里寻找包。这是否令人困惑且违反直觉?是的。无论如何,您可以使用参数来告诉setup()在哪里找到。例如。my_pkgpackage_dirpackage_dir={"":"src"}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python