Find top 10 large files

本文介绍了一个Java程序,用于查找指定目录及其子目录下的前十大文件,并按大小降序打印出来。程序通过递归遍历目录并计算每个文件的大小来实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package yxc.citi.file.find;


import java.io.File;
import java.io.FileInputStream;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.Comparator;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;


/*********************************************************************************
//* Filename:      FindTopLargeFile.java
//* Revision:      1.0
//* Author:        <yao xiucai>
//* Created On:    2014年7月29日
//* Modified by:   
//* Modified On:   
//*
//* Description:   <find top ${topNum} large file>
/********************************************************************************/


public class FindTopLargeFile {


    //top large file's num
    private static int                 topNum        = 10;
    //test Directory
    private static String              fileDirectory = "E:/tmp";


    private static Map<Double, String> fileMap       = null;


    /**
     * get file size
     * @param file
     * @return
     * @throws Exception
     */
    public static double getFileSize(File file) throws Exception {
        double size = 0;
        if (file.exists()) {
            FileInputStream fis = null;
            fis = new FileInputStream(file);
            size = fis.available();
            fis.close();
        }
        else {
            return 0;
        }
        size = size / 1024.00;
        size = Double.parseDouble(size + "");
        BigDecimal b = new BigDecimal(size);
        double y1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
        java.text.DecimalFormat df = new java.text.DecimalFormat("#.00");
        return Double.parseDouble(df.format(y1));
    }


    /**
     * find all files
     * @param dir
     * @throws Exception
     */
    final static Map<Double, String> findAllFiles(File dir) throws Exception {
        File[] fs = dir.listFiles();
        for (int i = 0 ; i < fs.length ; i++) {
            if (fs[i].isDirectory()) {
                try {
                    findAllFiles(fs[i]);
                }
                catch (Exception e) {
                    e.printStackTrace();
                }
            }
            else {
                Double key = getFileSize(fs[i]);
                String value = fs[i].getAbsolutePath();
                if (fileMap.containsKey(key)) {
                    key = key + 0.0001; //解决冲突。有效数位小数点后两位,因此最大支持冲突数位100
                    fileMap.put(key, value);
                }
                else {
                    fileMap.put(key, value);
                }
            }
        }


        return fileMap;
    }


    /**
     * print a map's value
     * @param map
     */
    final static void printDescMap(Map<Double, String> map) {
        if (map != null && map.size() > 0) {
            int fileNum = 0;
            Set<Double> keySet = map.keySet();
            Iterator<Double> iter = keySet.iterator();
            while (iter.hasNext()) {
                fileNum = fileNum + 1;
                Double key = iter.next();
                String value = map.get(key);
                DecimalFormat df = new DecimalFormat("0.00");
                String keyStr = df.format(key);
                System.out.println(value + " : " + keyStr + " KB");


                if (fileNum == topNum) {
                    break;
                }
            }
        }
        else {
            System.out.println("no file!");
        }
    }


    /**
     * 1.find all files,and get the result map;
     * 2.print result map
     * @param filePath
     * @throws Exception
     */
    public static void sortByDesc(String filePath) throws Exception {
        File file = new File(filePath);
        fileMap = new TreeMap<Double, String>(new Comparator<Double>() {


            public int compare(Double obj1, Double obj2) {
                //desc sort
                return obj2.compareTo(obj1);
            }
        });
        if (!file.exists()) {
            System.out.println("The file does not exist:" + filePath);
        }
        else {
            findAllFiles(file);
            printDescMap(fileMap);
        }


    }


    //test method
    public static void main(String[] args) throws Exception {
        long begin = System.currentTimeMillis();


        sortByDesc(fileDirectory);


        long end = System.currentTimeMillis();


        System.out.println("time:" + (end - begin) + " ms");
    }
}
pip3 install . Defaulting to user installation because normal site-packages is not writeable Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Processing /home/ubuntu/large_models/speech_pkg Preparing metadata (setup.py) ... done Building wheels for collected packages: speech DEPRECATION: Building 'speech' using the legacy setup.py bdist_wheel mechanism, which will be removed in a future version. pip 25.3 will enforce this behaviour change. A possible replacement is to use the standardized build interface by setting the `--use-pep517` option, (possibly combined with `--no-build-isolation`), or adding a `pyproject.toml` file to the source tree of 'speech'. Discussion can be found at https://github.com/pypa/pip/issues/6334 Building wheel for speech (setup.py) ... error error: subprocess-exited-with-error × python setup.py bdist_wheel did not run successfully. │ exit code: 1 ╰─> [322 lines of output] running bdist_wheel running build running build_py creating build creating build/lib creating build/lib/speech copying speech/awake.py -> build/lib/speech copying speech/__init__.py -> build/lib/speech running egg_info writing speech.egg-info/PKG-INFO writing dependency_links to speech.egg-info/dependency_links.txt writing top-level names to speech.egg-info/top_level.txt reading manifest file 'speech.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'speech.egg-info/SOURCES.txt' /home/ubuntu/.local/lib/python3.10/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'speech.jetson_nano' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'speech.jetson_nano' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'speech.jetson_nano' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'speech.jetson_nano' to be distributed and are already explicitly excluding 'speech.jetson_nano' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /home/ubuntu/.local/lib/python3.10/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'speech.jetson_orin' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'speech.jetson_orin' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'speech.jetson_orin' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'speech.jetson_orin' to be distributed and are already explicitly excluding 'speech.jetson_orin' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /home/ubuntu/.local/lib/python3.10/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'speech.resources' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'speech.resources' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'speech.resources' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'speech.resources' to be distributed and are already explicitly excluding 'speech.resources' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /home/ubuntu/.local/lib/python3.10/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'speech.rpi5' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'speech.rpi5' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'speech.rpi5' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'speech.rpi5' to be distributed and are already explicitly excluding 'speech.rpi5' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /home/ubuntu/.local/lib/python3.10/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'speech.rpi5_docker' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'speech.rpi5_docker' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'speech.rpi5_docker' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'speech.rpi5_docker' to be distributed and are already explicitly excluding 'speech.rpi5_docker' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) copying speech/speech.so -> build/lib/speech creating build/lib/speech/jetson_nano copying speech/jetson_nano/py3.6 -> build/lib/speech/jetson_nano copying speech/jetson_nano/speech.so -> build/lib/speech/jetson_nano creating build/lib/speech/jetson_orin copying speech/jetson_orin/py3.10 -> build/lib/speech/jetson_orin copying speech/jetson_orin/speech.so -> build/lib/speech/jetson_orin creating build/lib/speech/resources copying speech/resources/_detect_jetson_nano.so -> build/lib/speech/resources copying speech/resources/_detect_jetson_orin.so -> build/lib/speech/resources copying speech/resources/_detect_rpi5.so -> build/lib/speech/resources copying speech/resources/_detect_rpi5_docker_ubuntu20_04.so -> build/lib/speech/resources copying speech/resources/common.res -> build/lib/speech/resources copying speech/resources/detect_jetson_nano.so -> build/lib/speech/resources copying speech/resources/detect_jetson_orin.so -> build/lib/speech/resources copying speech/resources/detect_rpi5.so -> build/lib/speech/resources copying speech/resources/detect_rpi5_docker_ubuntu20_04.so -> build/lib/speech/resources copying speech/resources/vad.jit -> build/lib/speech/resources creating build/lib/speech/rpi5 copying speech/rpi5/py3.11 -> build/lib/speech/rpi5 copying speech/rpi5/speech.so -> build/lib/speech/rpi5 creating build/lib/speech/rpi5_docker copying speech/rpi5_docker/py3.8 -> build/lib/speech/rpi5_docker copying speech/rpi5_docker/speech.so -> build/lib/speech/rpi5_docker copying speech/awake.py -> build/lib/speech copying speech/__init__.py -> build/lib/speech /home/ubuntu/.local/lib/python3.10/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` directly. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. ******************************************************************************** !! self.initialize_options() installing to build/bdist.linux-aarch64/wheel running install running install_lib creating build/bdist.linux-aarch64 creating build/bdist.linux-aarch64/wheel creating build/bdist.linux-aarch64/wheel/speech copying build/lib/speech/awake.py -> build/bdist.linux-aarch64/wheel/speech creating build/bdist.linux-aarch64/wheel/speech/jetson_orin copying build/lib/speech/jetson_orin/speech.so -> build/bdist.linux-aarch64/wheel/speech/jetson_orin copying build/lib/speech/jetson_orin/py3.10 -> build/bdist.linux-aarch64/wheel/speech/jetson_orin creating build/bdist.linux-aarch64/wheel/speech/rpi5_docker copying build/lib/speech/rpi5_docker/speech.so -> build/bdist.linux-aarch64/wheel/speech/rpi5_docker copying build/lib/speech/rpi5_docker/py3.8 -> build/bdist.linux-aarch64/wheel/speech/rpi5_docker creating build/bdist.linux-aarch64/wheel/speech/rpi5 copying build/lib/speech/rpi5/speech.so -> build/bdist.linux-aarch64/wheel/speech/rpi5 copying build/lib/speech/rpi5/py3.11 -> build/bdist.linux-aarch64/wheel/speech/rpi5 copying build/lib/speech/speech.so -> build/bdist.linux-aarch64/wheel/speech creating build/bdist.linux-aarch64/wheel/speech/jetson_nano copying build/lib/speech/jetson_nano/py3.6 -> build/bdist.linux-aarch64/wheel/speech/jetson_nano copying build/lib/speech/jetson_nano/speech.so -> build/bdist.linux-aarch64/wheel/speech/jetson_nano copying build/lib/speech/__init__.py -> build/bdist.linux-aarch64/wheel/speech creating build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/_detect_rpi5.so -> build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/common.res -> build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/_detect_jetson_nano.so -> build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/detect_jetson_orin.so -> build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/detect_jetson_nano.so -> build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/detect_rpi5_docker_ubuntu20_04.so -> build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/detect_rpi5.so -> build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/vad.jit -> build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/_detect_jetson_orin.so -> build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/_detect_rpi5_docker_ubuntu20_04.so -> build/bdist.linux-aarch64/wheel/speech/resources running install_egg_info Copying speech.egg-info to build/bdist.linux-aarch64/wheel/speech-1.0-py3.10.egg-info running install_scripts creating build/bdist.linux-aarch64/wheel/speech-1.0.dist-info/WHEEL creating '/tmp/pip-wheel-4gy84oln/speech-1.0-py3-none-any.whl' and adding 'build/bdist.linux-aarch64/wheel' to it Traceback (most recent call last): File "<string>", line 2, in <module> File "<pip-setuptools-caller>", line 35, in <module> File "/home/ubuntu/large_models/speech_pkg/setup.py", line 3, in <module> setup( File "/home/ubuntu/.local/lib/python3.10/site-packages/setuptools/__init__.py", line 103, in setup return distutils.core.setup(**attrs) File "/home/ubuntu/.local/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 184, in setup return run_commands(dist) File "/home/ubuntu/.local/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 200, in run_commands dist.run_commands() File "/home/ubuntu/.local/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands self.run_command(cmd) File "/home/ubuntu/.local/lib/python3.10/site-packages/setuptools/dist.py", line 968, in run_command super().run_command(command) File "/home/ubuntu/.local/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "/usr/lib/python3/dist-packages/wheel/bdist_wheel.py", line 361, in run wf.write_files(archive_root) File "/usr/lib/python3/dist-packages/wheel/wheelfile.py", line 136, in write_files self.write(path, arcname) File "/usr/lib/python3/dist-packages/wheel/wheelfile.py", line 147, in write zinfo = ZipInfo(arcname or filename, date_time=get_zipinfo_datetime(st.st_mtime)) File "/usr/lib/python3.10/zipfile.py", line 366, in __init__ raise ValueError('ZIP does not support timestamps before 1980') ValueError: ZIP does not support timestamps before 1980 [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for speech Running setup.py clean for speech Failed to build speech ERROR: Failed to build installable wheels for some pyproject.toml based projects (speech) > cat ~/large_models/speech_pkg/pyproject.toml cat: /home/ubuntu/large_models/speech_pkg/pyproject.toml: No such file or directory > pip3 install . Defaulting to user installation because normal site-packages is not writeable Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Processing /home/ubuntu/large_models/speech_pkg Preparing metadata (setup.py) ... done Building wheels for collected packages: speech DEPRECATION: Building 'speech' using the legacy setup.py bdist_wheel mechanism, which will be removed in a future version. pip 25.3 will enforce this behaviour change. A possible replacement is to use the standardized build interface by setting the `--use-pep517` option, (possibly combined with `--no-build-isolation`), or adding a `pyproject.toml` file to the source tree of 'speech'. Discussion can be found at https://github.com/pypa/pip/issues/6334 Building wheel for speech (setup.py) ... error error: subprocess-exited-with-error × python setup.py bdist_wheel did not run successfully. │ exit code: 1 ╰─> [322 lines of output] running bdist_wheel running build running build_py creating build creating build/lib creating build/lib/speech copying speech/awake.py -> build/lib/speech copying speech/__init__.py -> build/lib/speech running egg_info writing speech.egg-info/PKG-INFO writing dependency_links to speech.egg-info/dependency_links.txt writing top-level names to speech.egg-info/top_level.txt reading manifest file 'speech.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'speech.egg-info/SOURCES.txt' /home/ubuntu/.local/lib/python3.10/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'speech.jetson_nano' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'speech.jetson_nano' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'speech.jetson_nano' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'speech.jetson_nano' to be distributed and are already explicitly excluding 'speech.jetson_nano' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /home/ubuntu/.local/lib/python3.10/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'speech.jetson_orin' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'speech.jetson_orin' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'speech.jetson_orin' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'speech.jetson_orin' to be distributed and are already explicitly excluding 'speech.jetson_orin' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /home/ubuntu/.local/lib/python3.10/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'speech.resources' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'speech.resources' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'speech.resources' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'speech.resources' to be distributed and are already explicitly excluding 'speech.resources' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /home/ubuntu/.local/lib/python3.10/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'speech.rpi5' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'speech.rpi5' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'speech.rpi5' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'speech.rpi5' to be distributed and are already explicitly excluding 'speech.rpi5' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) /home/ubuntu/.local/lib/python3.10/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'speech.rpi5_docker' is absent from the `packages` configuration. !! ******************************************************************************** ############################ # Package would be ignored # ############################ Python recognizes 'speech.rpi5_docker' as an importable package[^1], but it is absent from setuptools' `packages` configuration. This leads to an ambiguous overall configuration. If you want to distribute this package, please make sure that 'speech.rpi5_docker' is explicitly added to the `packages` configuration field. Alternatively, you can also rely on setuptools' discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html If you don't want 'speech.rpi5_docker' to be distributed and are already explicitly excluding 'speech.rpi5_docker' via `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, you can try to use `exclude_package_data`, or `include-package-data=False` in combination with a more fine grained `package-data` configuration. You can read more about "package data files" on setuptools documentation page: - https://setuptools.pypa.io/en/latest/userguide/datafiles.html [^1]: For Python, any directory (with suitable naming) can be imported, even if it does not contain any `.py` files. On the other hand, currently there is no concept of package data directory, all directories are treated like packages. ******************************************************************************** !! check.warn(importable) copying speech/speech.so -> build/lib/speech creating build/lib/speech/jetson_nano copying speech/jetson_nano/py3.6 -> build/lib/speech/jetson_nano copying speech/jetson_nano/speech.so -> build/lib/speech/jetson_nano creating build/lib/speech/jetson_orin copying speech/jetson_orin/py3.10 -> build/lib/speech/jetson_orin copying speech/jetson_orin/speech.so -> build/lib/speech/jetson_orin creating build/lib/speech/resources copying speech/resources/_detect_jetson_nano.so -> build/lib/speech/resources copying speech/resources/_detect_jetson_orin.so -> build/lib/speech/resources copying speech/resources/_detect_rpi5.so -> build/lib/speech/resources copying speech/resources/_detect_rpi5_docker_ubuntu20_04.so -> build/lib/speech/resources copying speech/resources/common.res -> build/lib/speech/resources copying speech/resources/detect_jetson_nano.so -> build/lib/speech/resources copying speech/resources/detect_jetson_orin.so -> build/lib/speech/resources copying speech/resources/detect_rpi5.so -> build/lib/speech/resources copying speech/resources/detect_rpi5_docker_ubuntu20_04.so -> build/lib/speech/resources copying speech/resources/vad.jit -> build/lib/speech/resources creating build/lib/speech/rpi5 copying speech/rpi5/py3.11 -> build/lib/speech/rpi5 copying speech/rpi5/speech.so -> build/lib/speech/rpi5 creating build/lib/speech/rpi5_docker copying speech/rpi5_docker/py3.8 -> build/lib/speech/rpi5_docker copying speech/rpi5_docker/speech.so -> build/lib/speech/rpi5_docker copying speech/awake.py -> build/lib/speech copying speech/__init__.py -> build/lib/speech /home/ubuntu/.local/lib/python3.10/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` directly. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. ******************************************************************************** !! self.initialize_options() installing to build/bdist.linux-aarch64/wheel running install running install_lib creating build/bdist.linux-aarch64 creating build/bdist.linux-aarch64/wheel creating build/bdist.linux-aarch64/wheel/speech copying build/lib/speech/awake.py -> build/bdist.linux-aarch64/wheel/speech creating build/bdist.linux-aarch64/wheel/speech/jetson_orin copying build/lib/speech/jetson_orin/speech.so -> build/bdist.linux-aarch64/wheel/speech/jetson_orin copying build/lib/speech/jetson_orin/py3.10 -> build/bdist.linux-aarch64/wheel/speech/jetson_orin creating build/bdist.linux-aarch64/wheel/speech/rpi5_docker copying build/lib/speech/rpi5_docker/speech.so -> build/bdist.linux-aarch64/wheel/speech/rpi5_docker copying build/lib/speech/rpi5_docker/py3.8 -> build/bdist.linux-aarch64/wheel/speech/rpi5_docker creating build/bdist.linux-aarch64/wheel/speech/rpi5 copying build/lib/speech/rpi5/speech.so -> build/bdist.linux-aarch64/wheel/speech/rpi5 copying build/lib/speech/rpi5/py3.11 -> build/bdist.linux-aarch64/wheel/speech/rpi5 copying build/lib/speech/speech.so -> build/bdist.linux-aarch64/wheel/speech creating build/bdist.linux-aarch64/wheel/speech/jetson_nano copying build/lib/speech/jetson_nano/py3.6 -> build/bdist.linux-aarch64/wheel/speech/jetson_nano copying build/lib/speech/jetson_nano/speech.so -> build/bdist.linux-aarch64/wheel/speech/jetson_nano copying build/lib/speech/__init__.py -> build/bdist.linux-aarch64/wheel/speech creating build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/_detect_rpi5.so -> build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/common.res -> build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/_detect_jetson_nano.so -> build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/detect_jetson_orin.so -> build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/detect_jetson_nano.so -> build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/detect_rpi5_docker_ubuntu20_04.so -> build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/detect_rpi5.so -> build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/vad.jit -> build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/_detect_jetson_orin.so -> build/bdist.linux-aarch64/wheel/speech/resources copying build/lib/speech/resources/_detect_rpi5_docker_ubuntu20_04.so -> build/bdist.linux-aarch64/wheel/speech/resources running install_egg_info Copying speech.egg-info to build/bdist.linux-aarch64/wheel/speech-1.0-py3.10.egg-info running install_scripts creating build/bdist.linux-aarch64/wheel/speech-1.0.dist-info/WHEEL creating '/tmp/pip-wheel-dpii6adm/speech-1.0-py3-none-any.whl' and adding 'build/bdist.linux-aarch64/wheel' to it Traceback (most recent call last): File "<string>", line 2, in <module> File "<pip-setuptools-caller>", line 35, in <module> File "/home/ubuntu/large_models/speech_pkg/setup.py", line 3, in <module> setup( File "/home/ubuntu/.local/lib/python3.10/site-packages/setuptools/__init__.py", line 103, in setup return distutils.core.setup(**attrs) File "/home/ubuntu/.local/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 184, in setup return run_commands(dist) File "/home/ubuntu/.local/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 200, in run_commands dist.run_commands() File "/home/ubuntu/.local/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands self.run_command(cmd) File "/home/ubuntu/.local/lib/python3.10/site-packages/setuptools/dist.py", line 968, in run_command super().run_command(command) File "/home/ubuntu/.local/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "/usr/lib/python3/dist-packages/wheel/bdist_wheel.py", line 361, in run wf.write_files(archive_root) File "/usr/lib/python3/dist-packages/wheel/wheelfile.py", line 136, in write_files self.write(path, arcname) File "/usr/lib/python3/dist-packages/wheel/wheelfile.py", line 147, in write zinfo = ZipInfo(arcname or filename, date_time=get_zipinfo_datetime(st.st_mtime)) File "/usr/lib/python3.10/zipfile.py", line 366, in __init__ raise ValueError('ZIP does not support timestamps before 1980') ValueError: ZIP does not support timestamps before 1980 [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for speech Running setup.py clean for speech Failed to build speech ERROR: Failed to build installable wheels for some pyproject.toml based projects (speech)
06-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值