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