2013-08-15 10 views
23

多くの理由から、私はs = __import__('parse')をPython2で最長の時間使用していましたが、今は特定のプロジェクト(主にSSLによるもの)のPython3への移行が必要です。Python3 - reload()を__import__オブジェクトで呼び出すことはできませんか?

しかし、私が見つけた限り、Python3にはreload()等号はありません。 一つだけのオプションがあります:

import parse 
parse.reload() #works 

しかし、私は本当に、本当にこれが動作する必要があります:どのようにそれはのpython3で働いて得るために、上の

parse = __import__('parse') 
parse.reload() 

または

reload(parse) 

任意のアイデア?

+1

私はそれを見つけたと思っています.-インポートimpと&imp.reload(解析) '? – Torxed

+2

'from imp imp import reload' –

+0

[NameErrorを与えるリロードモジュール:name 'reload'が定義されていません](https://stackoverflow.com/questions/961162/reloading-module-giving-nameerror-name-reload-定義されていません) –

答えて

49

reload組み込み関数は、Python 3.4でimportlibモジュールに移動された:

In [18]: from importlib import reload 

In [19]: reload? 
Reload the module and return it. 

The module must have been successfully imported before. 

としてはreload()機能をPythonでimportlibモジュールにimpから移動されたコメントで@JPagetが指摘3.4+。からwhat's new in Python 3.4

The reload() function has been moved from imp to importlib as part of the imp module deprecation

+11

Python 3.4以降、impは推奨されていません。代わりにimportlibを使用してください: 'from importlib import reload' – JPaget

関連する問題