Python setuptools:包目录不存在
Python setuptools: package directory does not exist
我有一个包含此 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 develop
和python setup.py bdist-wheel
也是如此。
我怀疑它与 src
目录有关,如 setup.py
中的 find_packages(where="./src")
调用中指定的那样。但是,我一直在关注 documentation,看起来确实在某个时候发现了 my_pkg
模块。
为什么build_py
找不到?
find_packages()
自动生成包名。也就是说,在您的情况下,它所做的只是生成 ['my_pkg']
。它实际上并没有告诉 setup()
在哪里可以找到 my_pkg
,只是它应该期望在某处找到一个名为 my_pkg
的包。你必须单独告诉 setup()
它应该在哪里寻找包裹。这是令人困惑和违反直觉的吗?是的。无论如何,您可以使用 package_dir
参数告诉 setup()
在哪里可以找到 my_pkg
。例如
package_dir={"":"src"}
我有一个包含此 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 develop
和python setup.py bdist-wheel
也是如此。
我怀疑它与 src
目录有关,如 setup.py
中的 find_packages(where="./src")
调用中指定的那样。但是,我一直在关注 documentation,看起来确实在某个时候发现了 my_pkg
模块。
为什么build_py
找不到?
find_packages()
自动生成包名。也就是说,在您的情况下,它所做的只是生成 ['my_pkg']
。它实际上并没有告诉 setup()
在哪里可以找到 my_pkg
,只是它应该期望在某处找到一个名为 my_pkg
的包。你必须单独告诉 setup()
它应该在哪里寻找包裹。这是令人困惑和违反直觉的吗?是的。无论如何,您可以使用 package_dir
参数告诉 setup()
在哪里可以找到 my_pkg
。例如
package_dir={"":"src"}