python - 使用共享包构建 Python 项目的最佳方式是什么?
问题描述
我目前正在与几个使用该包的项目同时开发一个包,并且我正在努力弄清楚如何构建我的目录树和导入。
理想情况下,我想要这样的东西:
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
└── ...
我不知道如何使导入工作干净地shared_package
从 project1 中的 python 文件导入。有没有首选的方法来做到这一点?
任何帮助,将不胜感激!
解决方案
shared_package
最终将是独立的。其他人会以正常方式导入和安装它,它会与其余的 python 模块一起存储在其中site-packages
或任何地方。
要复制这一点,我建议只更新您PYTHONPATH
的指向main_directory
(或您放置的任何位置shared_package
) - 这样,
import shared_package
如果shared_package
正常安装,代码仍然可以正常工作,因为无论哪种方式它都在 pythonpath 上。
请注意,这PYTHONPATH
是一个环境变量,因此执行此操作的方法将根据您的操作系统而有所不同。无论如何,快速搜索如何在您的操作系统上永久修改变量应该很容易。
推荐阅读
- tensorflow - 当我使用变压器模型训练翻译器时,为什么它不能将 y 转换为张量
- questdb - 您可以在 QuestDB 中将表设为只读吗?
- express - 上传文件以表达
- c# - C# HttpClient.GetAsync 忽略 HttpCompletionOption.ResponseHeadersRead
- uwp - 弹出窗口离开屏幕。定位应该怎么做?
- python - 将python类对象传递给瓶子模板
- r - Texreg 表不适合一页
- cmake - 如何在 CMake 脚本中运行其柯南包安装的 Doxygen 二进制文件?
- angular - 无法在 Angular html 中添加脚本和 json
- azure - 如何在 Azure 应用注册中显示客户端机密的隐藏值