質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

1099閲覧

ファイルで使用しているライブラリを一括で出力する方法

ruuuu

総合スコア168

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

3クリップ

投稿2020/09/28 09:08

編集2020/09/28 09:19

pythonでimportしているモジュールをコマンド一発で、出力する方法を探しています。
現在、少々事情があり、一つづつ既存のプログラムで使用されているライブラリを、「ModuleNotFoundError」が出る度にインストールしている状況です。
調べて見た所、modulefinder.ModuleFinderこちらがヒットしたのですが、以下のように試してみたのですが、エラーが出力されてしまいました。

modulefinder.ModuleFinder.report()

エラーの内容は下記になります。

ModuleNotFoundError: No module named 'modulefinder.ModuleFinder'; 'modulefinder' is not a package

こちら可能でしたら、コマンドから、importされているモジュールを一括で出力し、それらをインストールするような方法がありましたら教えて頂けましたら幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TakaiY

2020/09/28 09:22

書かれているリンクで「bacon.py のレポートを出力するスクリプトです:」と示されているものは作って動かしてみたのでしょうか? まずはそこからかと思うのですが。
ruuuu

2020/09/28 11:15

こちら、例が記載されている部分を見落としてしまっておりました... 記載のコードを実行し動作確認行なってみたいと思います
ruuuu

2020/09/28 11:31

ドキュメント記載のスクリプトを参考に、以下のコードを実行してみました。 finder = ModuleFinder() finder.run_script(__file__) finder.report() こちら、かなりの数のデータが出力され、どのライブラリがインストール必要なのかなど、少々判別つかない状態になってしまっています...
TakaiY

2020/09/28 12:41

記載のスクリプトをそのまま動かしてみないのはなぜですか?
toast-uz

2020/09/28 23:01

「既存のプログラム」とは、何か個別に作られたものでしょうか?ちゃんと作られたパッケージライブラリであれば、 requirements.txt を全て取ってくる、という技が使えると思いますが。
ruuuu

2020/09/29 00:16 編集

> 記載のスクリプトをそのまま動かしてみないのはなぜですか? こちら、記載のスクリプト通りに動かした後に、記載のコードを参考に色々と試してみたといった形でした
ruuuu

2020/09/29 01:00 編集

> 「既存のプログラム」とは、何か個別に作られたものでしょうか?ちゃんと作られたパッケージライブラリであれば、 requirements.txt を全て取ってくる、という技が使えると思いますが。 こちらですが、ライブラリがインストールされていない環境でありました為、再度インストールする必要が出てきてしまったといった状況です
TakaiY

2020/09/29 10:45

記載のスクリプトを動かすと、 「print('%s: ' % name, end='')」 スクリプト中のこの処理でインポートされるモジュールがすべて表示されるはずです。 そこから標準のものを除けばいいはずなんですけどね。 また、そのスクリプトに書かれている「import」対象になっているものをpipかなにかでインストールしてみれば、関連するものも含めてインストールされるのではないかと思うのですが。
ruuuu

2020/09/30 00:04 編集

ご助言ありがとうございます 「print('%s: ' % name, end='')」 こちらなのですが、実際に一つづつインストールしたものは10個程度なのですが、かなりの数のデータが表示されてしまっている状況です。。
TakaiY

2020/09/30 14:18

ライブラリというのは、それが動作するために必要な、依存しているライブラリがあるので、1つインストールすると複数のライブラリがインストールされることがほとんどです。 また、このスクリプトで出力されるライブラリには標準のライブラリもありますので、その分多く表示されます。 「ファイルで使用しているライブラリ」という目的には合っていると思うのですが。
ruuuu

2020/10/01 01:06

なるほどです。 今回の場合、使用するライブラリ(pip installを行うもの)を一覧で出したかったのですが、こちらのライブラリのみ出力するといったことは難しいでしょうか?
TakaiY

2020/10/01 15:11

ということは、「ファイルが読み込んでいるライブラリが知りたい」ということではないのですね? (pip installするものを知りたいということですので) であれば、pyファイルでimportしているモジュールをインストールすればいいのではないでしょうか? それでは足りないでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問