为了账号安全,请及时绑定邮箱和手机立即绑定

Python setuptools:包目录不存在

Python setuptools:包目录不存在

偶然的你 2023-10-11 20:07:57
我有一个包含此setup.py文件的项目:import setuptoolswith 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 buildrunning buildrunning build_pyerror: package directory 'my_pkg' does not existpython setup.py develop对于其他命令(如和 )也会发生同样的情况python setup.py bdist-wheel。我怀疑它与目录有关src,find_packages(where="./src")如setup.py. 但是,我一直在关注文档,并且看起来确实my_pkg在某个时候发现了该模块。为什么build_py找不到呢?
查看完整描述

1 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

find_packages()自动生成包名。也就是说,在您的情况下,它所做的只是生成['my_pkg']。它实际上并没有告诉setup()在哪里找到my_pkg,只是它应该期望找到一个my_pkg在某处调用的包。您必须单独告诉setup()它应该在哪里寻找包。这是否令人困惑且违反直觉?是的。无论如何,您可以使用参数来告诉setup()在哪里找到。例如。my_pkgpackage_dir

package_dir={"":"src"}


查看完整回答
反对 回复 2023-10-11
  • 1 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信