Re: [問題] import 上層資料夾的module?
※ 引述《StubbornLin (Victor)》之銘言:
: 我想請問一下import上層資料夾除了使用
: sys.path.append('xxxx')
: 這種方法,沒有其它比較....正式的寫法嗎= =?
: 因為append的路徑又得是絕對路徑
: 這變成程式碼帶到別的地方跑又得重設
: 我是有在某些地方去parse目前這個檔案的路徑
: 然後找到上一層接著append到path的方法
: 可是我還是很困擾,明明它就在樓上,我卻非得繞一大圈才能爬到樓上
: 難道就沒有樓梯可以走嗎 囧?
: 以上 不是什麼大問題的問題= ="
一般我是用 insert(0,'blah'),才不會被 $PYTHONPATH 擋住 :-)
不須要是絕對路徑:
>>> import sys
>>> sys.path.insert(0,'..')
>>> import testmod
>>> print testmod
<module 'testmod' from '..\testmod.py'>
你想要的 relative import 去年 (還是前年?) 在 python-dev 結束討論,
結論是 PEP328,Python 2.5 有實作。
不過經過我長時間的測試 ... 最近又改回用 absolute import。
這個功能確實有它的用處,解決了一些問題,但不能說是很有用。
你會想用 relative import,看起來是因為程式碼組織得不好,
用了 relative import 可能反而容易出問題,程式也容易亂。
relative import 大概只適合用來避開 recursive import 死結的發生,
而且在 refactor 程式結構的時候還很容易出包。
我建議善用 package。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 164.107.249.126
※ 編輯: yungyuc 來自: 164.107.249.126 (02/04 06:08)
※ 編輯: yungyuc 來自: 164.107.249.126 (02/04 06:14)
※ 編輯: yungyuc 來自: 164.107.249.126 (02/04 06:16)
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章