我繼承了相當多的Python代碼和遍佈它下面的代碼片段它增加了父目錄到系統路徑的文件路徑。不斷添加路徑sys.path中
from os.path import join, dirname
sys.path.insert(0, join(dirname(sys.argv[0]), "..\\"))
from utilities import find, execute
我對此的理解是它爲搜索路徑添加了一條路徑。在程序運行過程中,搜索路徑會增加許多路徑,並可能會使其變慢。隨着每個文件添加它自己的父目錄。
我喜歡的語法
from scm_tools.general.utilities import find, execute
,因爲這是容易理解和少得多的代碼。這可能會影響我是否移動代碼,但它都在一個包中。
我是正確的假設,一個包,後者語法是做事情的更Python的方式裏面?
或者它沒有引擎蓋下蟒真正重要的是做一些魔術?
你的兩個例子並不equivelent ...與Python 2.7引入了它相對於進口...我認爲你會做類似於'fromutilities import find,execute'這樣的東西......但是一般來說,從你的程序中編輯路徑是一種糟糕的形式(然而每個規則都有例外) –
這是一個糟糕的模式。如果你提到的代碼都在同一個包中('scm_tools'?),那麼你的首選語法就好多了。 – MattDMo
或者只是使用您的實際系統ENVIRNOMENT將路徑或pythonpath設置爲期望值(或者通常是您的IDE) –