2016-11-03 52 views
2

我有一个(Django)项目,有很多我没有virtualenv开始的进口。有没有办法来Pip冻结包,实际上是导入

pip freeze 

只有实际导入项目中某处的Python包,即他们是我的项目需要?

pip freeze 

会列出我系统中安装的所有软件包,但我只需要那些在我的项目中使用的软件包。

+0

的可能的复制[如何列出导入模块?](http://stackoverflow.com/questions/4858100/how-to-list-imported -modules) – JamesD

+0

你可以从'grep -r'import'。/' – Fi3

+0

@ Fi3开始:问题是这不会给出包含版本号的确切软件包名称 – Botond

回答

1

手动解决办法是

找到包使用grep

grep -r import ./*/*[.py] > j.t 

迭代中的所有j.t线与蟒蛇

fromIndex = line.find('from') 
importIndex = line.find('import') 
if fromIndex != -1: 
    return = line[fromIndex + 5 : importIndex - 1][5:] 
else: 
    return = line[importIndex + 7:] 

删除所有重复

皮普冻结在虚拟环境中找到版本号

皮普排挤虚拟ENV为找到另一版本号