[英]How to correctly important parent modules in submodules, while still being able to run them on their own and via main.py?
我的项目有这个文件结构:
src
├── API
│ ├── API.py
│ └── __init__.py
├── DataBase
│ ├── CreateDB.py
│ ├── DB.py
│ ├── SpacyTags.py
│ ├── __init__.py
├── ML
│ ├── FeaturePipe.py
│ ├── Labeler.py
│ ├── Predictor.py
│ ├── Transformer.py
│ ├── ModelCreator.py
│ ├── ModelOptimizer.py
│ └── __init__.py
├── News
│ ├── CNBCSpider.py
│ ├── CNBC_parse_article.py
│ ├── HistNewsAPI.py
│ ├── NewsListener.py
│ ├── __init__.py
│ └── new_article_funcs.py
├── Stock
│ ├── HistStockAPI.py
│ ├── ISIN.py
│ ├── PortfolioListener.py
│ ├── UpdateEntries.py
│ ├── __init__.py
├── Testing
│ └── ArticleFeatureTesting.ipynb
├── Exceptions.py
├── __init__.py
├── config.py
└── main.py
在我通过 Pycharm 运行我的程序并使用这样的导入之前(来自 ModelCreator.py 的示例):
from src.ML.Labeler import Labeler
from src.ML.ModelOptimizer import optimize_model
from src.Stock.ISIN import ISIN_LIST
现在,我正在迁移到我的 Raspberry Pi,我不确定如何导入 src/DataBase/DB.py 中的 src/config.py。 我仍然希望能够运行 main.py,它基本上导入了大部分模块和子模块,同时还能够自己运行子模块进行测试。 我也不喜欢添加一个
import sys
sys.path.append(xyz)
到每个文件。 所以我想知道是否有一个更清洁的选项,它允许所有这些。
我尝试使用相对路径进行导入,但这导致了类似的错误
ImportError: attempted relative import beyond top-level package
我发现的大多数解决方案对我都不起作用,因为我希望能够在 main.py 中导入我的模块,但仍想自行运行它们。 提前致谢。
不幸的是,我不相信有更优雅的解决方案。 也许这是 python 的限制,因为一些教程和其他 SO 线程说的类似:
在这种情况下,我会选择最适合您需求的解决方案。 也许PYTHONPATH
(或其他env
变量)?
正如我在行业中发现的那样,有时没有更好的方法,而“丑陋”的方法是唯一的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.