将声明导入Pip安装声明

时间:2017-07-20 16:35:06

标签: python-2.7 pip python-import

摘要

我正在寻找一种方法来查找所有必需的pip安装语句,其中包含版本号,基于脚本中使用的import语句。我将使用结果在部署期间为环境配置创建requirements.txt文件。

问题

python中的导入名称与pip使用的包名称之间存在偏差。此外,在使用子模块时,不需要立即显示父模式的pip安装。例如,在我们的脚本中我们正在做:

import pandas as pd
#body of code
writer = pd.ExcelWriter(filename, engine='xlsxwriter')

所以,如果我们只是pip安装pandas,我们将收到一个错误,即xlsxwriter也需要安装。

尝试与研究

首次尝试

#Import Packages
import pandas as pd
from sklearn import linear_model

#Create an Array of the Package names
imports = ['pandas','sklearn']

#find installed package version on local machine for each imported package
import pip #needed to use the pip functions
for i in pip.get_installed_distributions(local_only=True):
    for ii in imports:
        if str(i).find(str(ii)) != -1:
            print(str(i))

#pandas 0.18.1 is found but scikit-learn 0.17.1  is not 

研究

SO帖子下面的内容似乎列出了所有的导入名称,但是在帖子中运行第二个答案之后,我希望看到的导入名称如'sklearn'丢失了。

print(list(item[1] for item in pkgutil.iter_modules()))

0 个答案:

没有答案