[問題] import的問題

看板Python作者 (老師說要愛數學)時間7年前 (2017/09/12 00:30), 7年前編輯推噓1(1016)
留言17則, 7人參與, 最新討論串3/3 (看更多)
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

09/12 00:41, , 1F
__init__.py?
09/12 00:41, 1F

09/12 00:44, , 2F
可以給詳細一點的指點嗎?
09/12 00:44, 2F
※ 編輯: PhysiAndMath (112.104.176.141), 09/12/2017 00:54:58

09/12 01:00, , 3F
1樓是說  package1 package1 資料夾都建一個空檔案
09/12 01:00, 3F

09/12 01:01, , 4F
檔名為 __init__.py
09/12 01:01, 4F

09/12 01:03, , 5F
這是 python 的規則,可以查官方的 document
09/12 01:03, 5F
2 01:11 ※ 編輯: PhysiAndMath (112.104.176.141), 09/12/2017 01:12:48

09/12 01:13, , 7F
我做了這樣的嘗試,不知道是不是這個意思
09/12 01:13, 7F

09/12 03:05, , 8F
from .package2 import c # 注意前面有個 .
09/12 03:05, 8F

09/12 03:07, , 9F
然後現在已經沒有必要用 __init__.py 了 (PEP 420)
09/12 03:07, 9F

09/12 09:25, , 10F
Python 3沒必要有__init__.py
09/12 09:25, 10F

09/12 13:13, , 11F
謝謝u大,不過這樣是不是無法直接執行b
09/12 13:13, 11F

09/12 14:56, , 12F
u大的方法叫relative import 要直接執行b可以用-m參數
09/12 14:56, 12F

09/12 14:56, , 13F
python -m package1.b
09/12 14:56, 13F

09/12 18:16, , 14F
你到底有什麼需求一次講清楚, 擠牙膏問法浪費大家時間
09/12 18:16, 14F
不好意思造成你的不快 我在開發興趣使然的專案時想用python 3寫看看 所以我也不是很確定自己的完整需求是什麼 以前在寫python 2的時候會在module裡面寫 if __name__ == "__main__" 測試功能是否正常,但在python 3不確定這樣的安排是否仍然恰當

09/12 19:43, , 15F
大大想要的應該是這個吧sys.path.append
09/12 19:43, 15F
※ 編輯: PhysiAndMath (112.104.176.141), 09/13/2017 00:52:56

09/13 12:36, , 16F
if __name__ == '__main__' 仍然是合理作法, 但和你的問
09/13 12:36, 16F

09/13 12:37, , 17F
題無關; 就你的需求改用 python -m 執行應該是合適解法
09/13 12:37, 17F
文章代碼(AID): #1PjherYG (Python)
討論串 (同標題文章)
文章代碼(AID): #1PjherYG (Python)