python 安装工具 - 从项目中安装子包

python setup tools - install a sub package from within a project

我有两个具有以下结构的项目(trysetup1 和 trysetup2):

我想 pip 安装 package1 并使用项目 trysetup2 中的模块 1

我的 setup.py 在 package1 下看起来像这样:

import setuptools

setuptools.setup(
    name="common",
    version="1.0.2",
    packages=setuptools.find_packages(),
)

我想使用module1的方式是这样的from package1.module1 import ClassOne因为我还需要从package2使用它

当尝试从 module2 导入时它工作得很好

但是当尝试从 module3 使用它时(在 pip 安装后的不同项目中)我遇到了“未解决的参考 'package1'”问题

我知道我可以通过将 module1 放在 package1 下的另一个包中来使用它,但我需要这个确切的结构才能在项目的其余部分使用它 'trysetup1'

谢谢!

我的答案是在这里找到的:

https://docs.python.org/3/distutils/examples.html

实际上,我需要做的就是将 setup.py 文件更改为如下所示:


setuptools.setup(
    name="common",
    version="1.0.2",
    package_dir={'package1': ''},
    packages=['package1'],
)

通过添加 package_dir 参数,设置函数告诉我的根目录 (package1) 下的所有文件都在 package1 目录下,并通过添加 packages param 它分发 package1 包然后如果你去:

/..../venv/lib/python3.8/site-packages/common-1.0.2-py3.8.egg-info/top_level.txt

您将看到以下内容: