[解決済み] ローカルにインストールされたPythonモジュールの一覧を取得するにはどうしたらいいですか?
2022-03-18 19:56:16
質問
私のPythonインストール(UNIXサーバー)にあるPythonモジュールのリストを取得したいのですが、どうすればいいですか?
インストールされているPythonモジュールの一覧を取得するにはどうすればよいですか?
どのように解決するのですか?
解決方法
pip > 10.0では使用しないでください。
を手に入れるための私の50セント。
pip freeze
-のようなリストをPythonスクリプトから作成することができます。
import pip
installed_packages = pip.get_installed_distributions()
installed_packages_list = sorted(["%s==%s" % (i.key, i.version)
for i in installed_packages])
print(installed_packages_list)
(長すぎる)ワンライナーとして。
sorted(["%s==%s" % (i.key, i.version) for i in pip.get_installed_distributions()])
与えること。
['behave==1.2.4', 'enum34==1.0', 'flask==0.10.1', 'itsdangerous==0.24',
'jinja2==2.7.2', 'jsonschema==2.3.0', 'markupsafe==0.23', 'nose==1.3.3',
'parse-type==0.3.4', 'parse==1.6.4', 'prettytable==0.7.2', 'requests==2.3.0',
'six==1.6.1', 'vioozer-metadata==0.1', 'vioozer-users-server==0.1',
'werkzeug==0.9.4']
範囲
このソリューションは、システムスコープまたは仮想環境スコープに適用され、以下の方法でインストールされたパッケージが対象となります。
setuptools
,
pip
と(
神隠し
)
easy_install
.
私の使用例
この呼び出しの結果をflaskサーバーに追加したので、このサーバーを
http://example.com/exampleServer/environment
サーバーのvirtualenvにインストールされているパッケージの一覧を取得することができます。これでデバッグが楽になる。
注意事項
このテクニックの奇妙な挙動に気づきました - Python インタープリターが
setup.py
ファイルによってインストールされたパッケージは表示されません。
setup.py
.
再現するための手順
仮想環境の作成$ cd /tmp
$ virtualenv test_env
New python executable in test_env/bin/python
Installing setuptools, pip...done.
$ source test_env/bin/activate
(test_env) $
でgitレポをクローンします。
setup.py
(test_env) $ git clone https://github.com/behave/behave.git
Cloning into 'behave'...
remote: Reusing existing pack: 4350, done.
remote: Total 4350 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (4350/4350), 1.85 MiB | 418.00 KiB/s, done.
Resolving deltas: 100% (2388/2388), done.
Checking connectivity... done.
私たちはbehaveの
setup.py
で
/tmp/behave
:
(test_env) $ ls /tmp/behave/setup.py
/tmp/behave/setup.py
git repo から python パッケージをインストールします。
(test_env) $ cd /tmp/behave && pip install .
running install
...
Installed /private/tmp/test_env/lib/python2.7/site-packages/enum34-1.0-py2.7.egg
Finished processing dependencies for behave==1.2.5a1
から前述の解答を実行すると
/tmp
>>> import pip
>>> sorted(["%s==%s" % (i.key, i.version) for i in pip.get_installed_distributions()])
['behave==1.2.5a1', 'enum34==1.0', 'parse-type==0.3.4', 'parse==1.6.4', 'six==1.6.1']
>>> import os
>>> os.getcwd()
'/private/tmp'
から前述の解答を実行すると
/tmp/behave
>>> import pip
>>> sorted(["%s==%s" % (i.key, i.version) for i in pip.get_installed_distributions()])
['enum34==1.0', 'parse-type==0.3.4', 'parse==1.6.4', 'six==1.6.1']
>>> import os
>>> os.getcwd()
'/private/tmp/behave'
behave==1.2.5a1
は、2つ目の例では、作業ディレクトリに
behave
's
setup.py
ファイルを作成します。
ドキュメントにこの問題についての言及が見つかりませんでした。おそらく、この問題のためにバグを開くことになるでしょう。
関連
-
[解決済み] 関数デコレータを作成し、それらを連鎖させるには?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] Windowsにpipをインストールするにはどうしたらいいですか?
-
[解決済み] リストの最後の要素を取得する方法
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み] Pythonモジュールのバージョンを確認する方法は?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み] なぜeasy_installではなくpipを使用するのですか?
-
[解決済み] Pythonモジュール内のすべての関数をリストアップする方法は?
-
[解決済み] Pythonでインストールされているすべてのパッケージとそのバージョンを一覧表示するには?