使用共享包构建 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 上永久修改变量应该很容易。
我目前正在与几个使用该包的项目同时开发一个包,我正在努力弄清楚如何构建我的目录树和导入。
理想情况下,我想要这样的东西:
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 上永久修改变量应该很容易。