1. 程式人生 > >python reload error

python reload error

1、Python2中可以和Python3中關於reload()用法的區別。Python2 中可以直接使用reload(module)過載模組。

Pyhton3中需要使用如下兩種方式:
方式(1)

from importlib
imp.reload(module)
方式(2)

from importlib import reload
reload(module)

2、Python中使用import和reload()出現錯誤的原因

在Python中,以py為副檔名儲存的檔案就可以認為是一個模組,模組包含了 Python 物件定義和Python語句。

假設recommendations.py放在C:\Python34\PCI_Code\chapter2\目錄下,其中包含函式critics
如果在import函式的時候出現如下錯誤:

from recommendation import critics
Traceback (most recent call last):
File “<pyshell#7>”, line 1, in
from recommendation import critics
ImportError: No module named ‘recommendation’
請把目錄C:\Python34\PCI_Code\chapter2\加到系統路徑中,

import sys
sys.path.append(“C:\Python34\PCI_Code\chapter2”)

from recommendations import critics

或者切換到檔案所在的目錄中,

C:\Python34\PCI_Code\chapter2>python
from recommendations import *


使用reload()時出現如下錯誤

from imp import reload
reload(recommendations)
Traceback (most recent call last):
File “<pyshell#86>”, line 1, in
reload(recommendations)
NameError: name ‘recommendations’ is not define

原因是因為在reload某個模組的時候,需要先import來載入需要的模組,這時候再去reload就不會有問題,具體看下面程式碼:

from imp import reload
reload(recommendations)
import recommendations
<module ‘recommendations’ from ‘C:\Python34\PCI_Code\chapter2\recommendations.py’>