Python 3.5.1:如何检查openpyxl包是否存在,如果不存在,如何下载和安装;内;剧本?

Python 3.5.1:如何检查openpyxl包是否存在,如果不存在,如何下载和安装;内;剧本?,python,python-3.x,python-3.5,Python,Python 3.x,Python 3.5,我两周前开始编写python代码,直到现在,我已经在将excel数据转换为txt文件后对其进行了操作。现在,我想直接操作excel数据,所以我需要安装openpyxl包。但是,我的脚本将在许多不同的地方和计算机上使用(注意:它们都使用OSX或Linux发行版),这些地方和计算机可能(可能不)安装了openpyxl包。我想让我的脚本检查这个包是否存在,如果它没有退出,那么下载并安装它 为此,当我搜索并发现我可以通过首先导入pip模块,然后导入pip.get\u installed\u distri

我两周前开始编写python代码,直到现在,我已经在将excel数据转换为txt文件后对其进行了操作。现在,我想直接操作excel数据,所以我需要安装openpyxl包。但是,我的脚本将在许多不同的地方和计算机上使用(注意:它们都使用OSX或Linux发行版),这些地方和计算机可能(可能不)安装了openpyxl包。我想让我的脚本检查这个包是否存在,如果它没有退出,那么下载并安装它

为此,当我搜索并发现我可以通过首先导入pip模块,然后导入pip.get\u installed\u distributions()方法来检查包的存在性。然而,我不确定我是否走错了路。此外,我不知道如何“不离开脚本”下载和安装openpyxl包


您愿意帮助我吗?

当您没有要部署的软件时,您试图解决部署问题,这是在超越自己

让一个脚本尝试管理自己的部署通常是一个坏主意,因为这会让包管理器失去责任

以下是我对你问题的回答:

  • 在假设所有软件包都已正确安装/部署的情况下构建软件。我建议在您的开发计算机上创建一个
    virtualenv
    (虚拟环境),使用pip安装
    openpyxl
    和您需要的任何其他软件包
  • 一旦您的软件构建并正常运行,请阅读如何将您的软件包部署到PyPi:。通过将
    openpyxl
    定义为依赖项来创建包,确保包可以正确安装/运行(我建议添加测试),然后部署到PyPi,以便任何人都可以使用您的软件
  • 如果您想在脚本中添加一个好的验证层以防万一,请将以下内容添加到
    main
    方法中:

    #!/usr/bin/env python3
    import sys
    try:
        import openpyxl
    except ImportError as iE:
        print("Python Excel module 'openpyxl' not found")
        sys.exit(1)
    
    ... rest of script ...
    

    看,我忘了在我的回答中澄清。。。hashbang
    #/usr/bin/env python3
    位于脚本文件的顶部,而不是方法中,因此如果要将代码放入函数中,请忽略该行。