问题描述
我有一个结构(简化)如下所示的包:
I have a package with a structure that would (simplified) look like:
mypackage/
__init__.py
setup.py
module1.py
module2.py
mysubpackage/
__init__.py
mysubmodule1.py
mysubmodule2.py
我正在使用 setup.py 的配置,如下所示:
I'm using a configuration for setup.py like this:
from setuptools import setup, find_packages
setup(
name = "mypackage",
version = "0.1",
author = "Foo",
author_email = "foo@gmail.com",
description = ("My description"),
packages=find_packages(),
)
find_packages()
的默认 where
参数是 '.'
,但它不包括我的顶级模块(module1.py 或 module2.py).但是,在运行 python setup.py build
时会添加所有子模块和子包.
The default where
argument for find_packages()
is '.'
, but it doesn't include my top-level modules (module1.py nor module2.py). However, all child submodules and subpackages are added when running python setup.py build
.
如何在不将 setup.py 上移一级的情况下也添加顶级 Python 模块?
How could I get top-level Python modules added too, without moving setup.py one level higher?
推荐答案
感谢大家的回复.
最后,我添加了一个包含 mypackage 和 setup.py 模块的目录(不是 Python 包).现在的结构如下所示:
Finally, I added a directory (not Python package) containing mypackage and the setup.py module. The structure now looks as follows:
myapp/
setup.py
mypackage/
__init__.py
module1.py
module2.py
mysubpackage/
__init__.py
mysubmodule1.py
mysubmodule2.py
现在使用 find_packages()
可以正常工作.谢谢!
Now using find_packages()
works as expected. Thanks!
这篇关于如何让python setuptools找到顶级模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!