使用共享包构建 Python 项目的最佳方式是什么?

What is the best way to structure Python projects using a shared package?

我目前正在与几个使用该包的项目同时开发一个包,我正在努力弄清楚如何构建我的目录树和导入。

理想情况下,我想要这样的东西:

main_directory
├── shared_package
│   ├── __init__.py
│   ├── package_file1.py
│   └── package_file2.py
├── project1
│   ├── main.py
│   ├── module1.py
│   └── other_package
│       ├── __init__.py
│       └── other_package_file.py
└── project2
    └── ...

我不知道如何使导入工作干净利落地从 project1 中的 python 文件导入 shared_package。有更好的方法吗?

如有任何帮助,我们将不胜感激!

shared_package最终会独立。其他人将以正常方式导入和安装它,它将与其余 python 模块一起存储在 site-packages 或任何地方。

要复制这个,我建议只更新你的 PYTHONPATH 以指向 main_directory(或者你放置 shared_package 的任何地方) - 这样,

import shared_package
如果 shared_package 正常安装,

代码仍然可以正常工作,因为它在任何一种方式的 python 路径上。

请注意,PYTHONPATH 是一个环境变量,因此执行此操作的方法因操作系统而异。无论如何,快速搜索如何在 OS 上永久修改变量应该很容易。