代码之家  ›  专栏  ›  技术社区  ›  ford04

有没有一种方法可以创建一个包含子包的源发行版,而不使用uuu init\uuuuuuy.py?

  •  1
  • ford04  · 技术社区  · 7 年前

    python setup.py sdist 不必使用某种 __init__.py .py -应包括所有子包中的文件。

    所以采用下面的项目结构(我试图与 pytest documentation ):

    project_structure

    设置.py:

    from setuptools import setup, find_packages
    setup(
        version="0.0.1",
        name="py_import_test",
        package_dir={"": "src"},
        packages=find_packages(where='src')
    )
    

    main.py

    import py_import_test.p1.helloworld
    # do something with helloworld-module
    

    当我 使用上面的项目结构,我在生成的.tar.gz中根本没有得到任何源文件。只有在有条件的情况下,它才会起作用 __初始值 在下面 py_import_test , p1 以及可能的进一步分装。

    除了我关于 :上述程序是否被视为良好/现代的做法?

    问候语

    1 回复  |  直到 7 年前
        1
  •  1
  •   ash    7 年前

    而不是 find_packages find_namespace_packages (以前称为 find_packages_ns ).

    需要最新版本的setuptools;函数已添加到 version 40.1.0 ,于2018年8月发布。

    您还需要小心,不要包含不打算作为包的目录,而是 where='src'