作者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/m.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