设为首页
收藏本站
开启辅助访问
全部
问与答
创意
技术
酷工作
生活
交易
资源
节点
飞墙
Follow
明白贴
影视
报酬
登录
注册
飞社-令人惊奇的创意工作者社区-
›
首页
›
Python
›
Python 导入自定义包的正确做法是什么?
FSHEX=FIND+SHARE+EXPRESS
飞社-令人惊奇的创意工作者社区- 是一个关于发现分享表达的地方
现在登录
没有账号?
立即注册
推荐主题
›
社保缴纳基数引发的讨论,表示理解不了
›
车牌摇到号了,无奈手头不宽裕,纠结是买二
›
去马来西亚做计算机靠谱吗?
›
最终还是对开发者下手了🤣
›
公司开始主动补缴社保了,是有什么大雷么?
今日热议主题
关于 Mac mini M4 外置机械硬盘的休眠问题
原来野猫,其实才是真正的入侵物种在破坏我
装饰器能不能装饰类的所有方法
出鼠标迈从 g3 800mh
你们不是要买日版 iPhone 吗? JD 海外购现
行车记录仪
eSIM 免费 1GB 流量,有效期两天
建立了 Signal 群,有人玩吗?
建立自己的投资框架 ——学习支撑和压力
听说 VSCode 用浅色主题对眼睛更好,求推荐
Python 导入自定义包的正确做法是什么?
ztm0929
· 2024-8-21 18:41:41 · 187 次点击
我是编程新手,正在练习爬虫项目,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 目录添加到环境变量是最佳做法吗?还是说我这样的目录结构本身就是错的?
举报
·
187 次点击
登录
注册
站外分享
微信扫一扫
QQ分享
微博分享
豆瓣分享
复制链接
显示全部
|
最早评论
16 条回复
17#
Maerd
小成
2024-8-22 17:29:17
楼上的很多都没说到点上,如果你是 pycharm ,可以不用配置,如果你是 vscode,需要将 PYTHONPATH 设为源代码根目录
16#
houzhiqiang
小成
2024-8-22 14:00:01
根本原因是你要找到你的程序入口
15#
EndlessMemory
小成
2024-8-22 10:14:08
添加当前路径到环境变量
14#
sujin190
小成
2024-8-22 09:03:46
有__init__.py 文件的文件夹才是 python 的 package ,否则就是一个普通文件夹,而且如果你的 scraper 是个包含 main 的执行程序,此时是不能导入 models 的,因为不在 package 导入路径里,python import 的是 package 不是目录或者文件
13#
kanchi240
小成
2024-8-21 23:55:59
https://docs.python.org/3/tutorial/modules.html#intra-package-references
Since the name of the main module is always "__main__", modules intended for use as the main module of a Python application must always use absolute imports.
12#
y1y1
初学
2024-8-21 22:44:57
import 的根目录是入口文件的
11#
Sawyerhou
小成
2024-8-21 22:13:02
楼上几层的观点+1 ,
现有目录结构可以试试
from models import func
如果想从 app 导入,就要 append 路径到 sys ,
不然 main 函数找不到 app
10#
NickLuan
小成
2024-8-21 21:45:55
总结的到位👍
@cnt2ex
9#
chenqh
小成
2024-8-21 21:39:58
你把 main 移到 app 同层,就可以 from app.models import func
8#
forQ
小成
2024-8-21 21:18:49
sys.path.append()
或
sys.path.insert()
下一页 »
1
2
/ 2 页
下一页
返回顶部