python3.x - 為什么設(shè)置了.pth文件,python還是找不到模塊?
問(wèn)題描述
我的python是3.5.2版本的。我有一個(gè)helloworld.py模塊,它里面有個(gè)show函數(shù)用來(lái)輸出'Hello World'。我把這個(gè)模塊放在pck文件夾下面,然后把pck文件夾放在C盤下。
然后,在python安裝路徑的site-packages目錄下修建了PckPath.pth文件,里面嘗試了各種寫法:
C:
C:pck
C:pckhelloworld
C:pckhelloworld.py
把上面的反斜杠換成正斜杠
........
無(wú)論是哪一種,在桌面新建test.py文件,然后輸入
import pck.helloworldpck.helloworld.show()
在IDLE都會(huì)提示
Traceback (most recent call last): File 'C:UsersBerlinDesktoptest.py', line 1, in <module> import pck.helloworldImportError: No module named ’pck
為什么??如果我直接在test.py中設(shè)置sys.path.append(...)則可以正常使用,到底哪里出問(wèn)題了?.pth文件怎么弄啊?
問(wèn)題解答
回答1:Python默認(rèn)查找包的地方有以下幾個(gè):
Python安裝目錄下的site-packages目錄
環(huán)境變量PYTHONPATH的目錄
當(dāng)前目錄
sys.path.append(...)添加的目錄(這個(gè)是臨時(shí)的)然而如果你只把包放在了C盤下面,那么它不屬于任何一種情況,Python當(dāng)然就找不到包了。除了sys.path.append()方法,上面方法中還有將C:加到PYTHONPATH環(huán)境變量也是可以的。
回答2:任何語(yǔ)言幾乎都是在從系統(tǒng)變量、語(yǔ)言設(shè)置變量到最終的即時(shí)記載的變量,基本都是這個(gè)順序,對(duì)于同一個(gè)變量,最近的是生效的。我學(xué)這些語(yǔ)言的環(huán)境問(wèn)題什么的都是這么排查的,一查一個(gè)準(zhǔn)兒
