2016-11-25 10 views
0

私は以下の問題があります:txtファイルがあるGitHub(textstat)からPythonパッケージをインストールしました。パッケージ内で定義されたいくつかの関数では、txtファイルの内容(実際には簡単な英語の長いリスト)が使用されます。 テキストエディタでファイルを開いて保存すると、txtファイルのリストにいくつかの単語が追加されましたが、古いリストが使用されているように私のPythonコード(Jupyter Notebook)更新されたものではありません。 これを修正するにはどうすればよいですか?Pythonモジュールをリロードする

EDIT:reload()が私の問題を解決しなかったので、もう少し情報があります。また、カーネルやコンピュータ全体を再起動してもうまくいきませんでした。

textstat.pyのtxtファイル "easy_words.txt"(textstat.pyと同じディレクトリにあります)は、 "easy_word_set "次のように:

easy_word_set = set([ln.strip() for ln in pkg_resources.resource_stream('textstat', 'easy_words.txt')]) 

さて、私のJupyterノートに私はいつものようにtextstatインポート:どういうわけか

import textstat.textstat as ts 

ts.easy_word_set 

は私に最新のリストを与えます。しかし、私が例えば

ts.textstat.gunning_fog(word) 

古いリストが使用されます。

+0

リロード(your_module)の –

+0

可能な複製([?私は(リロード)Pythonモジュールのアンロードするにはどうすればよい] http://stackoverflow.com/questions/437589/how-do-i-unload-reload-a-python-module) – mx0

+0

textstat(またはpkg_resources)のように、easy_words.txtファイルに関する情報がキャッシュされています。もしそうなら、私たちはそのキャッシュをクリアする方法を理解する必要があります。 Linuxシステムでは、おそらくこの時点でstraceを介してプログラムを実行して、それがどのファイルを読み込んでいるのかを知ることができます。 – Waxrat

答えて

0

ipythonの自動再延長に役立ちます。

In [1]: %load_ext autoreload 

In [2]: %autoreload 2 

In [3]: from foo import some_function 

In [4]: some_function() 
Out[4]: 42 

In [5]: # open foo.py in an editor and change some_function to return 43 

In [6]: some_function() 
Out[6]: 43 
+0

あなたの答えをありがとう! しかし、どういうわけか、カーネルを再起動して変更されたモジュールをインポートしても、古いリストが使用されているようです。 –

+0

古いリストを再度呼び出すかどうかを確認してください。おそらくコードに間違いがあります。 – Inconnu

+0

モジュールをリロードするのに役立ちましたら、upvoteを実行してください:-) – Inconnu

関連する問題