作者PhysiAndMath (老师说要爱数学)
看板Python
标题[问题] import的问题
时间Tue Sep 12 00:30:42 2017
dir
| a.py
| package1
+- b.py
| package2
+- c.py
其中b.py有 from package2 import c
但是a.py import package1.b的时候会说 没有package2
请问我该怎麽解决这件事
我用的是python 3.5
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 112.104.176.141
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1505147445.A.890.html
1F:→ mikapauli: __init__.py?09/12 00:41
2F:→ PhysiAndMath: 可以给详细一点的指点吗?09/12 00:44
※ 编辑: PhysiAndMath (112.104.176.141), 09/12/2017 00:54:58
3F:→ s860134: 1楼是说 package1 package1 资料夹都建一个空档案09/12 01:00
4F:→ s860134: 档名为 __init__.py09/12 01:01
5F:→ s860134: 这是 python 的规则,可以查官方的 document09/12 01:03
2 01:11
※ 编辑: PhysiAndMath (112.104.176.141), 09/12/2017 01:12:48
7F:→ PhysiAndMath: 我做了这样的尝试,不知道是不是这个意思09/12 01:13
8F:→ uranusjr: from .package2 import c # 注意前面有个 .09/12 03:05
9F:→ uranusjr: 然後现在已经没有必要用 __init__.py 了 (PEP 420)09/12 03:07
10F:→ pmove: Python 3没必要有__init__.py09/12 09:25
11F:→ PhysiAndMath: 谢谢u大,不过这样是不是无法直接执行b09/12 13:13
12F:→ stucode: u大的方法叫relative import 要直接执行b可以用-m参数09/12 14:56
13F:→ stucode: python -m package1.b09/12 14:56
14F:→ uranusjr: 你到底有什麽需求一次讲清楚, 挤牙膏问法浪费大家时间09/12 18:16
不好意思造成你的不快
我在开发兴趣使然的专案时想用python 3写看看
所以我也不是很确定自己的完整需求是什麽
以前在写python 2的时候会在module里面写
if __name__ == "__main__"
测试功能是否正常,但在python 3不确定这样的安排是否仍然恰当
15F:推 laladeer: 大大想要的应该是这个吧sys.path.append09/12 19:43
※ 编辑: PhysiAndMath (112.104.176.141), 09/13/2017 00:52:56
16F:→ uranusjr: if __name__ == '__main__' 仍然是合理作法, 但和你的问 09/13 12:36
17F:→ uranusjr: 题无关; 就你的需求改用 python -m 执行应该是合适解法 09/13 12:37