获取python工程下面的所需的所有开源依赖包
现在开源的项目网上很多,但是往往是不写依赖包的,导致我们不知道哪些包需要记录。
这个博文给出获取python工程下面所有开源依赖包的方法。
首先我找了有没有现成的包[1],该链接中显示的包是用来获取python 开源包(也就是带有setup.py的工程)中的依赖库。
pipreqs /home/project/location以及
pip install yolk都试过了,无效。
###################下面开始自己写############################
所以我们需要的逻辑是,遍历当前路径下面的每个.py文件[2]:
最终python3代码如下:
import os# 遍历文件夹及其子文件夹中的文件,并存储在一个列表中# 输入文件夹路径、空文件列表[]# 返回 文件列表Filelist,包含文件名(完整路径)def get_filelist(dir, Filelist):newDir = dirif os.path.isfile(dir):Filelist.append(dir)# # 若只是要返回文件文,使用这个# Filelist.append(os.path.basename(dir))elif os.path.isdir(dir):for s in os.listdir(dir):if s == ".git": # 忽略.git文件夹continuenewDir=os.path.join(dir,s)get_filelist(newDir, Filelist)#递归调用return Filelistdef find_package(lists):for file in lists:content=open(file)for ilne in content.readlines():# print(line)# print(type(line))if "import" in ilne:print(ilne)if __name__ =='__main__' :lists = get_filelist('RSNA666_HIT2080', [])find_package(lists)print("文件数量=",len(lists))输出结果如下:
import pandas as pd
from tqdm import tqdm
import numpy as np
from ..utils import misc
import random
import math
import cv2
from albumentations.augmentations import functional as F
from albumentations.core.transforms_interface import ImageOnlyTransform
import cv2
import os
import random
import glob
import pandas as pd
######################
补充:
还有个办法是直接:
grep -r import
缺点是会在左侧显示很多路径。
Reference:
[1]https://stackoverflow.com/questions/35796968/get-all-modules-packages-used-by-a-python-project
[2]https://blog.csdn.net/C_chuxin/article/details/83446602
总结
以上是生活随笔为你收集整理的获取python工程下面的所需的所有开源依赖包的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: git lfs的安装和使用详细案例
- 下一篇: python中@wraps的作用