Python 导入包顺序的先后可能改变代码行为?

2023-05-27 12:30:27 +08:00
 t133

各位大佬,小弟最近碰到了一个非常诡异的 bug. 先导入 torch 后导入这个 package 就会出现异常。 感觉可能是导入的时候定义了全局变量? 详情可以看我这个 issue https://github.com/tblite/tblite/issues/110 目测 torch 的锅的可能性应该不大吧

1946 次点击
所在节点    Python
11 条回复
iorilu
2023-05-27 12:59:37 +08:00
当然有关系

Python 经常有循环导入,不注意顺序根本运行不了
flyqie
2023-05-28 01:35:09 +08:00
这有啥意外的吗。。

不仅 python ,很多语言都会这样,习惯就好。。

遇上了就算点背,调试可能得好久。
asmoker
2023-05-28 13:33:23 +08:00
版本问题?
miaotaizi
2023-05-29 14:17:46 +08:00
有没有好的方案能避免循环导入, 我也被这个问题搞得头大
Latin
2023-05-29 15:07:38 +08:00
@miaotaizi 把类似 util 函数相关的导包放入函数内部 避免启动时候循环导包
rev1si0n
2023-05-29 16:06:57 +08:00
会,有时候还会根据导入顺序给一些模块打个补丁
akaHenry
2023-05-30 08:12:19 +08:00
@miaotaizi 局部 import 啊. 函数内 import 模块.
miaotaizi
2023-05-30 09:02:00 +08:00
@akaHenry 所以局部 import 没啥毛病么, 好多人说不够优雅...
哈哈
t133
2023-05-30 11:55:45 +08:00
其实我想问 是不是有这种 feature 的包不太符合规范
akaHenry
2023-05-31 10:41:24 +08:00
@miaotaizi 循环引用, 解决冲突的办法就是 local import. 还管啥优雅不优雅.
miaotaizi
2023-05-31 14:35:12 +08:00
@akaHenry 有些人就是拿这种事情当饭吃

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

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

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

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

© 2021 V2EX