如何解决Python setuptools:软件包目录不存在
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
之类的其他命令也是如此。
我怀疑它与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 举报,一经查实,本站将立刻删除。