Python 把文件名和文件内一个类弄成同名, 又使用了 multiprocess 会造成 import 不到文件的问题?

2016-04-25 10:29:52 +08:00
 kamushin
3589 次点击
所在节点    Python
9 条回复
zhicheng
2016-04-25 10:35:54 +08:00
import 不到会 raise 一个 error 。你的情况很可能只是名字被覆盖了。
fds
2016-04-25 10:36:34 +08:00
纯吐槽: python 的 import 规则太奇怪,特别是相对路径基本没法用,还是 node.js 的比较直观
kamushin
2016-04-25 10:46:49 +08:00
@zhicheng 确实 raise 了 error. 我使用了 from A import * . 结果 A 中的常量都没能 import 进来. 而这只发生在用了 multiprocess 的分支, 我怀疑是不是多进程中的 target method 在运行时会丢失 import.
julyclyde
2016-04-25 15:43:11 +08:00
循环 import 也没啥问题吧?为什么 multiprocessing 那么穷讲究?
yetone
2016-04-25 16:13:30 +08:00
@fds 是你不会 Python ,不要乱吐槽,太丢人了。。
kamushin
2016-04-25 16:32:38 +08:00
@julyclyde 倒是和 multiprocessing 没啥关系. 只是循环 import 的时候, 包名和类名冲突覆盖了.
fds
2016-04-25 16:59:05 +08:00
@yetone 吐个槽有啥丢人的…… 比如像下面网址中的问题,要不就是改 sys.path 要不就是用 python -m 参数,多麻烦
ref : http://stackoverflow.com/questions/72852/how-to-do-relative-imports-in-python
SmiteChow
2016-04-25 17:16:41 +08:00
循环引用可以通过拆分 py 文件的方式解决
zonghua
2016-04-26 00:14:48 +08:00
会的,当初学习 python 的时候就发现了这个问题困扰我好久

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

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

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

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

© 2021 V2EX