这是我的项目的目录结构。
.
├── args_parser.py
├── driver.py
├── event.py
├── logs
├── main.py
├── requirements.txt
├── scrap_results
├── sites
│ │
│ ├── tentimes.py
└──...
│ └── xpath
│ │
│ └──10times.json
└── utils.py
我正在尝试将类Event
从events.py
导入到sites/tentimes.py
。所有站点都通过main.py
运行。
# sites/tentimes.py
from event import Event
这个文件不能独立运行,并抛出ImportError
,但当我通过main.py
运行它时,它确实工作。
ImportError: attempted relative import with no known parent package
有没有办法只运行sites/tentimes.py
作为**__main__
**?
太感谢了祝你今天愉快
1条答案
按热度按时间wwwo4jvm1#
对于这个问题有各种解决方案。如果项目足够大,需要子文件夹,那么我更喜欢将其转换为python包的路线。然后我使用
python -m pip install -e .
在本地安装这个包。当您这样做并切换到绝对导入时,无论您直接运行www.example.com还是子模块,它们都将工作main.py。这里有一篇关于这个主题的优秀文章:https://realpython.com/python-import/#create-and-install-a-local-package