我有一个具有总体命名空间的项目,其中包含包。这是文件夹结构:
pypackage
├── pypackage <-- Source code for use in this project.
| |
│ ├── bin <-- Module: Cli entry point into pyproject.
| | ├── __init__.py
| | └── pypackage.py
| |
| └── core <-- Module: Core functionality.
| ├── __init__.py
| └── pypackage.py
|
├── tests
├── README.md
└── setup.py
很简单。如果我想导入它,我使用:
from pypackage.core import pypackage
它很好用,因为我的 setup.py 看起来像这样:
from setuptools import setup, find_packages
...
NAME = 'pypackage'
setup(
name=NAME,
namespace_packages=[NAME],
packages=[f'{NAME}.{p}' for p in find_packages(where=NAME)],
entry_points={
"console_scripts": [
f'{NAME} = {NAME}.bin.{NAME}:cli',
]
},
...
)
pypackage
但是,当它曾经只是一个独立的 python 文件时,我有导入它的遗留代码。像这样:
import pypackage
那么我该如何制作它,以便我可以使用名称空间和子包保持相同的结构,但仍然以旧方式导入它?我该如何转这个:
from pypackage.core import pypackage
进入这个:
import pypackage
换句话说,当我导入外部项目时,如何给pypackage.core.pypackage
模块起别名?pypackage
pypackage