Python setuptools:包目录不存在

Python setuptools:包目录不存在,python,python-3.x,setuptools,Python,Python 3.x,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="

我有一个带有此
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',
)
这是我的项目目录结构(前两级):

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

$ python setup.py build
running build
running build_py
error: package directory 'my_pkg' does not exist
对于其他命令,如
python setup.py develope
python setup.py bdist wheel
,也会发生同样的情况

我怀疑它与
src
目录有关,如
setup.py
中的
find_包(where=“/src”)
调用中指定的。然而,我一直在关注,它确实看起来
my_pkg
模块在某个时候被发现了

为什么
build\u py
找不到它?

find\u packages()
自动生成包名。也就是说,在您的情况下,它所做的只是生成
['my_pkg']
。它实际上并没有告诉
setup()
在哪里可以找到
myu-pkg
,只是它应该在某处找到一个名为
myu-pkg
的包。您必须单独告诉
setup()
它应该在哪里查找包。这是否令人困惑和违反直觉?对无论如何,您可以使用
package\u dir
参数告诉
setup()
在哪里可以找到
my\u pkg
。例如

package_dir={"":"src"}

更改为
packages=setuptools.find_packages(where=“src”,exclude=(“tests”),这没有什么区别。
setuptools.setup(name=”“,version=“0.0.1”,author=“”,author\u email=“”,description=”“,long\u description=long\u description,long\u description\u content\u type=“text/markdown”,package\u dir={”:str(“src”)},分类器=[“编程语言::Python::3”,“许可证::OSI批准::MIT许可证”,“操作系统::OS独立”,],Python_requires='>=3.8',)
你能试试吗@Carsten添加
程序包\u dir
似乎确实起到了作用。嗨,有没有办法通过
setup.cfg
实现这一点?
package_dir={"":"src"}