Python 导入自定义包的正确做法是什么?

80 天前
 ztm0929

我是编程新手,正在练习爬虫项目,Python 到底如何导入包?

xxx_project
├── README
└── app
    ├── models.py
    ├── main.py
    └── crawler
        └── scraper_1.py
        └── scraper_2.py
        └── scraper_3.py

models 定义了数据库引擎和会话,我想让 scraper 能够与数据库交互,但是
from ..models import func 会得到报错
ImportError: attempted relative import with no known parent package

from app.models import func 又会得到报错
ModuleNotFoundError: No module named 'app'

网上提到的在 app 目录下创建空白 __init__.py 似乎也没有效果,而 GPT 提到的将 app 目录添加到环境变量是最佳做法吗?还是说我这样的目录结构本身就是错的?

4085 次点击
所在节点    Python
23 条回复
ztm0929
79 天前
@Maerd 咦😕原来不同编辑器还有这个问题呀
volvo007
79 天前
看看这个有没有帮助 https://www.bilibili.com/video/BV1K24y1k7XA/? spm_id_from=333.999.0.0&vd_source=bcfa969247c2baeec790cdac234b36e6
marvyn
77 天前
在对应环境的 site-packages 下新增一个 app.pth ,里面内容就是一行
比如 D:\xxx_project\app

导入时:
from app.models import func

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1066810

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX