微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python setuptools:软件包目录不存在

如何解决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 developpython setup.py bdist-wheel之类的其他命令也是如此。

我怀疑它与src的{​​{1}}调用中指定的find_packages(where="./src")目录有关。但是,我一直在关注documentation,看起来确实在某个时候发现了setup.py模块。

为什么my_pkg找不到它?

解决方法

find_packages()自动生成软件包名称。也就是说,您的情况是生成['my_pkg']。它实际上并没有告诉setup()在哪里可以找到my_pkg,只是它应该期望在某个地方找到一个名为my_pkg的软件包。您必须单独告诉setup()应该在哪里寻找软件包。这是令人困惑和反直观的吗?是。无论如何,您可以使用setup()参数告诉my_pkg在哪里找到package_dir。例如。

package_dir={"":"src"}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。