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