Python 3.5.1:如何查看openpyxl包是否存在,如果不存在如何下载安装"within"脚本?
Python 3.5.1 : How to check whether openpyxl package exist and if it does not exist how to download and install it "within" the script?
我两周前开始编写 python 代码,直到现在我已经在将一些 excel 数据转换为 txt 文件后对其进行了操作。现在,我想直接操作 excel 数据,所以我需要安装 openpyxl 包。但是,我的脚本将用于许多不同的地方和计算机(请注意:它们都使用 OS X 或 Linux 发行版)可能(可能不)包含已安装的 openpyxl 包。我想让我的脚本检查这个包是否存在,如果不存在,则下载并安装它。
为此,我搜索并发现我可以通过先导入 pip 模块然后导入 pip.get_installed_distributions() 方法来检查包是否存在。但是,我不确定我是否走错了路。此外,我不知道如何下载和安装openpyxl包"without leaving the script"。
你愿意帮助我吗?
在没有要部署的软件的情况下尝试解决部署问题,您是在超前。
让脚本尝试管理自己的部署通常不是一个好主意,因为它会剥夺包管理器的责任。
这是我对你问题的回答:
- 构建您的软件假设所有包都installed/deployed正确。我建议在您的开发计算机上创建一个
virtualenv
(虚拟环境),使用 pip 安装 openpyxl
和您需要的任何其他包。
- 一旦您的软件构建完成并正常运行,请继续阅读如何将软件包部署到 PyPi:https://pypi.python.org/pypi。通过将
openpyxl
定义为依赖项来创建您的包,确保您的包可以 installed/run 正确(我建议添加测试),然后部署到 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 ...
我两周前开始编写 python 代码,直到现在我已经在将一些 excel 数据转换为 txt 文件后对其进行了操作。现在,我想直接操作 excel 数据,所以我需要安装 openpyxl 包。但是,我的脚本将用于许多不同的地方和计算机(请注意:它们都使用 OS X 或 Linux 发行版)可能(可能不)包含已安装的 openpyxl 包。我想让我的脚本检查这个包是否存在,如果不存在,则下载并安装它。
为此,我搜索并发现我可以通过先导入 pip 模块然后导入 pip.get_installed_distributions() 方法来检查包是否存在。但是,我不确定我是否走错了路。此外,我不知道如何下载和安装openpyxl包"without leaving the script"。
你愿意帮助我吗?
在没有要部署的软件的情况下尝试解决部署问题,您是在超前。
让脚本尝试管理自己的部署通常不是一个好主意,因为它会剥夺包管理器的责任。
这是我对你问题的回答:
- 构建您的软件假设所有包都installed/deployed正确。我建议在您的开发计算机上创建一个
virtualenv
(虚拟环境),使用 pip 安装openpyxl
和您需要的任何其他包。 - 一旦您的软件构建完成并正常运行,请继续阅读如何将软件包部署到 PyPi:https://pypi.python.org/pypi。通过将
openpyxl
定义为依赖项来创建您的包,确保您的包可以 installed/run 正确(我建议添加测试),然后部署到 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 ...