我有一个包含此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_pkg
package_dir
package_dir={"":"src"}
添加回答
举报
0/150
提交
取消