栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何获取本地安装的Python模块列表?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何获取本地安装的Python模块列表?

pip freeze
从Python脚本中获得类似列表的50美分:

import pipinstalled_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_envNew python executable in test_env/bin/pythonInstalling setuptools, pip...done.$ source test_env/bin/activate(test_env) $ 克隆git repo setup.py(test_env) $ git clone https://github.com/behave/behave.gitCloning 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.

我们的行为的

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.eggFinished 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
第二个示例中缺少,因为工作目录包含behave的setup.py文件。

我在文档中找不到对此问题的任何引用。也许我会为此打开一个错误。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/574996.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号