看板 Python 關於我們 聯絡資訊
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://www.ptt.cc/bbs/Python/M.1505147445.A.890.html
mikapauli: __init__.py?09/12 00:41
PhysiAndMath: 可以給詳細一點的指點嗎?09/12 00:44
※ 編輯: PhysiAndMath (112.104.176.141), 09/12/2017 00:54:58
s860134: 1樓是說  package1 package1 資料夾都建一個空檔案09/12 01:00
s860134: 檔名為 __init__.py09/12 01:01
s860134: 這是 python 的規則,可以查官方的 document09/12 01:03
PhysiAndMath: http://imgur.com/a/Ovygm09/1
2 01:11 ※ 編輯: PhysiAndMath (112.104.176.141), 09/12/2017 01:12:48
PhysiAndMath: 我做了這樣的嘗試,不知道是不是這個意思09/12 01:13
uranusjr: from .package2 import c # 注意前面有個 .09/12 03:05
uranusjr: 然後現在已經沒有必要用 __init__.py 了 (PEP 420)09/12 03:07
pmove: Python 3沒必要有__init__.py09/12 09:25
PhysiAndMath: 謝謝u大,不過這樣是不是無法直接執行b09/12 13:13
stucode: u大的方法叫relative import 要直接執行b可以用-m參數09/12 14:56
stucode: python -m package1.b09/12 14:56
uranusjr: 你到底有什麼需求一次講清楚, 擠牙膏問法浪費大家時間09/12 18:16
不好意思造成你的不快 我在開發興趣使然的專案時想用python 3寫看看 所以我也不是很確定自己的完整需求是什麼 以前在寫python 2的時候會在module裡面寫 if __name__ == "__main__" 測試功能是否正常,但在python 3不確定這樣的安排是否仍然恰當
laladeer: 大大想要的應該是這個吧sys.path.append09/12 19:43
※ 編輯: PhysiAndMath (112.104.176.141), 09/13/2017 00:52:56
uranusjr: if __name__ == '__main__' 仍然是合理作法, 但和你的問 09/13 12:36
uranusjr: 題無關; 就你的需求改用 python -m 執行應該是合適解法 09/13 12:37