python - import里的dot是以哪個(gè)路徑作為根目錄的?
問(wèn)題描述
# in mylib.py filefrom . import xmlfrom .xml import some_thingfrom ..xml import some_thing...
這類(lèi)顯式的相對(duì)引用,是用哪個(gè)路徑作為根目錄的呢? 特別的,當(dāng)這上述程序本身也是一個(gè)程序庫(kù),發(fā)布后被其他用戶(hù)
import mylib
那此時(shí)又是相對(duì)什么路徑來(lái)計(jì)算的呢?
另外一個(gè)問(wèn)題,
import osassert os.path.isdir(’,’)
這個(gè)沒(méi)問(wèn)題。但有些程序庫(kù),比如PIL
import PILPIL.Image(...) # 就會(huì)報(bào)錯(cuò),找不到Image,需要顯式的import PIL.ImagePIL.Image(...) # OK
這又是為什么呢?先謝謝了哈。
問(wèn)題解答
回答1:.(dot) 是以你當(dāng)前運(yùn)行文件路徑為當(dāng)前路徑
發(fā)布后被其他用戶(hù)引用, 在你Python安裝目錄下有一個(gè)Lib目錄, 直接像import os這樣的是引用該目錄下全局的模塊
import osos.path...
可以運(yùn)行是因?yàn)閛s是一個(gè)模塊, 也是一個(gè)可運(yùn)行的python文件
而PIL那個(gè)例子,因?yàn)闆](méi)有我沒(méi)有PIL,我只能不負(fù)責(zé)任的猜測(cè)PIL不是一個(gè)模塊
相關(guān)文章:
1. docker - 各位電腦上有多少個(gè)容器啊?容器一多,自己都搞混了,咋辦呢?2. android studio總是在processes running好久3. MySQL數(shù)據(jù)庫(kù)中文亂碼的原因4. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””5. macos - mac下docker如何設(shè)置代理6. docker不顯示端口映射呢?7. java - 請(qǐng)問(wèn)在main方法中寫(xiě)成對(duì)象名.屬性()并賦值,與直接參參數(shù)賦值輸錯(cuò)誤是什么原因?8. css - C#與java開(kāi)發(fā)Windows程序哪個(gè)好?9. docker gitlab 如何git clone?10. docker-compose 為何找不到配置文件?
