严重挣扎于 sdist - 希望能够在导入时跳过文件夹

Seriously struggling with sdist - Want to be able to skip folder when importing

包结构:

main
|-folder1
   |- folderA
      |-myfile1.py
      |-myfile2.py
   |- folderB
      |-myfile3.py
      |-myfile4.py
|-folder2
   |-myfile5.py
|-setup.py

现在我必须这样做:from main.folder1.folderA import myfile1。我想要做的是:from main.folderA import myfile1 我在这方面度过了最糟糕的时光。

如果我这样做 python3 setup.py build,它会在 build/ 文件夹中创建正确的文件夹结构,但是当我这样做时它似乎不起作用 python3 setup.py sdist

我的 setup.py 文件如下所示:

from setuptools import find_packages, setup

def find_packages_with_names():
    dict_of_packages = {}
    for pack in find_packages():
        location = pack.replace('.', '/')
        dict_of_packages[pack] = location
        if 'main.folder1.' in pack:
            new_name = pack.replace('.folder1.', '.')
            dict_of_packages[new_name] = location

    return dict_of_packages

setup(
    name="main"
    packages=find_packages_with_names().keys(),
    package_dir=find_packages_with_names(),
)

为了可能增加混乱,它让我 from main.folderA import myfile1 如果我在本地执行此操作

pip3 install -v git+ssh://git@gitlab.com/path/repo-name.git@branch-name

但是,如果我在 Docker

中 运行 之后 from main.folderA import myfile1 会抛出错误
RUN --mount=type=ssh pip3 install -v git+ssh://git@gitlab.com/path/repo-name.git@branch-name

问题: 1)我需要做sdist吗?如果我只是构建,它似乎无法正确安装。如果我可以只使用 build 那就太好了! 2) 基本上任何你能给我的建议,让我可以 python3 from main.folderA import myfile1 而不是 python3 from main.folder1.folderA import myfile1 都会很棒!

在此先感谢+希望你们都保持健康!

我实际上找到了答案,尽管这花了很长时间才弄明白。

python3 setup.py bdist_wheel