如何知道python模块的大小?

2024-04-27 02:46:11 发布

您现在位置:Python中文网/ 问答频道 /正文

当我使用pip install module_name安装模块时,我可以看到轮子或包的大小。在

所以问题是,有没有可能知道每个模块的大小?在

像这样。在

import pip

for dist in pip.get_installed_distributions():
    print(distribution_size_only of dist)

我想知道发行版的估计大小,以便从winpython发行版中删除它们。在


Tags: 模块installpipinstallednameinimportfor
2条回答

我知道这很模糊,但这正是我想要的:

import re
import requests
import json
def regexsubstring(s, p):
    p = re.compile(p, flags=re.IGNORECASE)
    return p.search(s)

def wf(data,path,mode):
    with open(path, mode, encoding='utf-8') as out:
        out.write(data)
        return

import pip
dists_size_info = {}

for dist in pip.get_installed_distributions():
    url = "https://pypi.python.org/pypi/" + dist.key + "/" + dist.version
    r = requests.get(url)
    size = regexsubstring(r.text, """<td style="text-align: right;">(\w+)</td>""").group(1)
    dists_size_info[dist.key] = [dist.version, size]
    print(dists_size_info)
wf(json.dumps(dists_size_info),'dists_size_info.txt','w')

或者您可以通过以下网址获取列表:

http://hastebin.com/qiconesoje.apache

import os
import pip


def calc_container(path):
    total_size = 0
    for dirpath, dirnames, filenames in os.walk(path):
        for f in filenames:
            fp = os.path.join(dirpath, f)
            total_size += os.path.getsize(fp)
    return total_size


for dist in pip.get_installed_distributions():
    try:
        path = os.path.join(dist.location, dist.project_name)
        size = calc_container(path)
        if size:
            print path
            print size
    except OSError:
        '{} no longer exists'.format(dist.project_name)

如果您在virtualenv中,您可以使用第一个选项获取更多:

get_installed_distributions(local_only=True, skip=('python', 'wsgiref', 'argparse'), include_editables=True, editables_only=False, user_only=False) Return a list of installed Distribution objects.

If local_only is True (default), only return installations local to the current virtualenv, if in a virtualenv.

相关问题 更多 >