我按照PEP420隐式命名空间打包方法创建了多个包。其中两个分发包是dende-github-api和dende-gitlab-api。每个发行版都包含一个模块,我希望可以在dende.api命名空间下访问该模块。可以在这里找到一个最小的工作示例: https ://github.com/dende/example-monorepositry
这是包含两个发行版的存储库的文件夹结构:
\nexample-monorepository\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dende-github-api\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dende\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 api\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 github.py\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 setup.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dende-gitlab-api\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dende\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 api\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 gitlab.py\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 setup.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 requirements.dev.txt\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 requirements.txt\nRun Code Online (Sandbox Code Playgroud)\n\看起来setup.py像这样(仅显示 dende-github-api):
from setuptools import setup\n\nsetup(\n name=\'dende-github-api\',\n packages=[\'dende.api\'],\n install_requires=[\n \'PyGithub\'\n ]\n)\nRun Code Online (Sandbox Code Playgroud)\n我可以安装这两个发行版并很好地使用它们:
\n$ pip install ./dende-github-api\n$ pip install ./dende-gitlab-api\n$ python -m dende.api.github\nHi from dende-github-api from /home/c/git/example-monorepositry/venv/lib/python3.8/site-packages/dende/api/github.py\n$ python -m dende.api.gitlab\nHi from …Run Code Online (Sandbox Code Playgroud)