Python 使用Pipenv在包之间拆分依赖项

Python 使用Pipenv在包之间拆分依赖项,python,python-3.x,pip,package,pipenv,Python,Python 3.x,Pip,Package,Pipenv,我正在开发一个Python代码库,该代码库分为3个不同的包: common是其他软件包使用的库 datascience使用common并包含大量非常大的lib(numpy/scipy/…) api它只使用common 我正在使用pipenv管理我的依赖项,现在在根目录下有一个Pipfile,其中包含所有库。 问题是api打包了datascience所需的所有非常大的lib,即使它没有使用它们 . ├── Pipfile ├── common | ├── __init__.py | └

我正在开发一个Python代码库,该代码库分为3个不同的包:

  • common
    是其他软件包使用的库
  • datascience
    使用
    common
    并包含大量非常大的lib(numpy/scipy/…)
  • api
    它只使用
    common
我正在使用
pipenv
管理我的依赖项,现在在根目录下有一个
Pipfile
,其中包含所有库。 问题是
api
打包了
datascience
所需的所有非常大的lib,即使它没有使用它们

.
├── Pipfile
├── common
|   ├── __init__.py
|   └── common.py
├── datascience
|   ├── __init__.py
|   └── ds.py
├── api
    ├── __init__.py
    └── handler.py
我希望能够部署
api
包,包括
common
包及其依赖项,而不需要
datascience
包及其dep。 类似地,我还需要构建
datascience
包,包括
common
包及其依赖项,而不需要
api
包及其dep

我试着做到以下几点:

.
├── common
|   ├── Pipfile << Only contains deps used by common pkg
|   ├── __init__.py
|   └── common.py
├── datascience
|   ├── Pipfile << Only contains deps used by datascience pkg
|   ├── __init__.py
|   └── ds.py
├── api
    ├── Pipfile << Only contains deps used by api pkg
    ├── __init__.py
    └── handler.py
。
├── 常见的

| ├── 我认为这里有一些根本性的错误
pipenv
用于管理应用程序依赖项。如果您希望您的子模块可以作为独立的应用程序运行,例如“python-m[submodule]”,那么就可以了。“我希望能够在没有数据科学包及其dep的情况下部署api包,包括公共包及其依赖项”-您需要将它们视为不同的包并删除”“根上的单个Pipfile”或将此“单个Pipfile”视为用于开发环境的Pipfile我认为这里有一些根本错误。
pipenv
用于管理应用程序依赖项。如果您希望子模块可以作为独立的应用程序运行,例如“python-m[submodule]”,那么这是可以的。“我希望能够在没有datascience包及其DEP的情况下部署api包,包括通用包及其依赖项”-然后您需要将它们视为不同的包并删除“根目录下的单个Pipfile”,或者将此“单个Pipfile”视为开发环境的Pipfile