Jupyterノートブックで使用されるPythonパッケージのバージョンと関連情報が印刷されているので、その結果が再現可能であることを覚えているようです。しかし、私はパッケージの名前を覚えていない。あなた方の誰かが私を正しい方向に向けることができますか?Jupyterノートブックで使用されるパッケージのバージョンを表示するパッケージ
ありがとうございます!
Jupyterノートブックで使用されるPythonパッケージのバージョンと関連情報が印刷されているので、その結果が再現可能であることを覚えているようです。しかし、私はパッケージの名前を覚えていない。あなた方の誰かが私を正しい方向に向けることができますか?Jupyterノートブックで使用されるパッケージのバージョンを表示するパッケージ
ありがとうございます!
これは、私がすでに設けられた二つのソリューションを組み合わせることで、この答えを石畳きた現在のノートブック
import types
def imports():
for name, val in globals().items():
if isinstance(val, types.ModuleType):
yield val.__name__
list(imports())
ご返信ありがとうございますが、問題のノートブックで使用されているパッケージのみを表示するパッケージを探しています。 – msx
この質問の可能な複製 –
http://stackoverflow.com/questions/4858100/how-to-list-imported-modules –
からパッケージの一覧を取得するには、インストールされているすべてのパッケージ
import pip #needed to use the pip functions
for i in pip.get_installed_distributions(local_only=True):
print(i)
を取得します。私は究極的には、Binderという素晴らしいWebサイトで簡単に使用できるよう、requirements.txtタイプのファイルを生成したかったのです。明らかに、私はpip freeze
私の全体のシステムにしたくないが、私はまた、すべてのノートブック(最終的に私の問題がどこにあるのか)に別々の仮想環境を作りたくない。
これは、import
ではなく、import from
を使用したときに複雑な形式のrequirements.txtタイプ文字列を出力し、複雑な部分を処理します。
# Get locally imported modules from current notebook
import pip
import types
def get_imports():
for name, val in globals().items():
if isinstance(val, types.ModuleType):
# Split ensures you get root package,
# not just imported function
name = val.__name__.split(".")[0]
# Some packages are weird and have different
# imported names vs. system names
if name == "PIL":
name = "Pillow"
yield name
imports = list(set(get_imports()))
# The only way I found to get the version of the root package
# from only the name of the package is to cross-check the names
# of installed packages vs. imported packages
requirements = []
for m in pip.get_installed_distributions():
if m.project_name in imports and m.project_name!="pip":
requirements.append((m.project_name, m.version))
for r in requirements:
print("{}=={}".format(*r))
サンプル出力:
scipy==0.19.0
requests==2.18.1
Pillow==5.0.0
numpy==1.13.0
matplotlib==2.0.2
'PIP freeze'各パッケージに関する情報を示します。あるいは、 'conda list'を使うこともできます。 – estebanpdl
ピップフリーズはノートブックの中のパッケージに関する情報を印刷しますか? – msx
これらの例は、* terminal *または*コマンドプロンプト*の情報を示しています。 – estebanpdl