# 查找Python项目依赖的方法总结

> 作者：zning（https://ning.ae） · 发布：2019/06/16 23:16 下午 (UTC+8) · 原文：https://zning.me/15606981763143.html

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

## 使用pip freeze

```shell
$ pip freeze > requirements.txt
```

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

## 使用 pipreqs

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

缺点是可能会有些偏差，需要检查并自己调整下。
```shell
pip install pipreqs
```
```shell
# 使用方式也比较简单
$ 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
```

来源：https://blog.csdn.net/lzz957748332/article/details/60958525
