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"}