查找python项目依赖并生成requirements.txt的方法

yipeiwu_com6年前Python基础

一起开发项目的时候总是要搭建环境和部署环境的,这个时候必须得有个python第三方包的list,一般都叫做requirements.txt。 如果一个项目使用时virtualenv环境,还好办 pip freeze 就可以解决,但是如果一个项目的依赖list没有维护,而且又是环境混用,那就不好整理的呀,不过,这里安利一个工具 pipreqs,可以自动根据源码生成 requirements.txt .

使用pip freeze

$ pip freeze > requirements.txt

这种方式配合virtualenv 才好使,否则把整个环境中的包都列出来了。

使用 pipreqs

这个工具的好处是可以通过对项目目录的扫描,自动发现使用了那些类库,自动生成依赖清单。

缺点是可能会有些偏差,需要检查并自己调整下。

# pip install pipreqs

# 使用方式也比较简单
pipreqs ./

INFO: Starting new HTTPS connection (1): pypi.python.org
INFO: Starting new HTTPS connection (1): pypi.python.org
INFO: Starting new HTTPS connection (1): pypi.python.org
INFO: Starting new HTTPS connection (1): pypi.python.org
INFO: Starting new HTTPS connection (1): pypi.python.org
INFO: Starting new HTTPS connection (1): pypi.python.org
INFO: Successfully saved requirements file in ./requirements.txt

cat requirements.txt

Django == 1.6
django_redis == 4.3.0
redis == 2.10.5
django_redis_cache == 1.6.5
simplejson == 3.8.2
Twisted == 16.0.0
pycrypto == 2.6.1
ConcurrentLogHandler == 0.9.1
cx_Oracle == 5.2.1
ujson == 1.35

有时候结果可能会有些偏差,这里并没有用Oracle的相关驱动,根据的需要修改 requirements.txt 就好了。

how python project auto generate requirements.txt ?

以上这篇查找python项目依赖并生成requirements.txt的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

使用python的pandas为你的股票绘制趋势图

使用python的pandas为你的股票绘制趋势图

前言 手里有一点点公司的股票, 拿不准在什么时机抛售, 程序员也没时间天天盯着看,不如动手写个小程序, 把股票趋势每天早上发到邮箱里,用 python 的 pandas, matplot...

python学习之第三方包安装方法(两种方法)

python学习之第三方包安装方法(两种方法)

这篇文章主要介绍了python学习之第三方包安装方法,最近在学习QQ空间、微博(爬虫)模拟登录,都涉及到了RSA算法。这样需要下一个RSA包(第三方包),在网上搜了好多资料,具体有以下两...

如何安装2019Pycharm最新版本(详细教程)

如何安装2019Pycharm最新版本(详细教程)

1下载安装 1.1打开官网 http://www.jetbrains.com/pycharm/download/ 耐心等待,大概200M,几分钟左右 1.2.双击下载好的exe,得到如...

Python查找最长不包含重复字符的子字符串算法示例

Python查找最长不包含重复字符的子字符串算法示例

本文实例讲述了Python查找最长不包含重复字符的子字符串算法。分享给大家供大家参考,具体如下: 题目描述 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。...

selenium+python自动化测试之页面元素定位

selenium+python自动化测试之页面元素定位

上一篇博客selenium+python自动化测试(二)–使用webdriver操作浏览器讲解了使用webdriver操作浏览器的各种方法,可以实现对浏览器进行操作了,接下来就是对浏览器...