python - 检测 Python 解释器并从 WiX 安装程序安装站点包
问题描述
我目前正在扩展一个基于 WiX 的现有安装程序,以提供一个PythonAPI
为某些软件新实现的 Python API(我们称之为它)。我已将必要的文件添加到安装程序中,并将它们放置在适当的位置(例如C:\Program Files\SomeSoftware\PythonAPI
)。我可以使用命令通过 pip 安装 API
python -m pip install "C:\Program Files\SomeSoftware\PythonAPI"
这允许我通过选择适当的 python 解释器来选择我想要安装包的 python 版本。例如这个包只兼容python3.6及以上。
我的问题是:如何在 WiX 的帮助下找到已安装的 python 解释器并使用适当的解释器来运行上面的安装命令?
最简单的方法是假设 中存在适当的 python 解释器PATH
,但我不想依赖它。相反,我认为最好检查注册表中的键,例如
HKLM\SOFTWARE\Python\PythonCore\versionnumber\InstallPath
HKCU\SOFTWARE\Python\PythonCore\versionnumber\InstallPath
在哪里versionnumber
获取3.6
安装路径并使用此解释器的绝对路径。但是,如果我正确理解了WiX 的RegistrySearch功能,则很难扫描多个版本 ( >=3.6
),因为我必须提供完整的密钥路径(在这种情况下包括versionnumber
)。我当然可以对当前可用的版本(和)进行硬编码检查3.6
,但这意味着每次新的 python 版本出现时我都必须手动扩展它。3.7
3.8
一旦选择了正确的解释器,我会假设可以使用CustomAction来运行上面提到的安装命令。
解决方案
推荐阅读
- hadoop - Apache Pig:将嵌套包合并为一个包
- c++ - 如何在引用上设置数据断点
- reactjs - 如何更改材料 ui 日期选择器语言和默认时区?
- java - 活动中未显示底部导航栏
- python-3.x - 试图从 OptionMenu 中选择选项以使用 tkinter 在嵌套字典中获取多个字典值
- php - MySQL DB 查询抛出错误,说我有语法错误。好像找不到他们?我相信它在查询的列部分
- pyspark - 如何在不使用 StandardScaler 的情况下标准化 PySpark 中的列?
- azure - Azure 数据工厂映射值的一部分
- python - 如何使用 PyCharm Remote Deployment 开发多个包?
- ruby-on-rails - 使用 rspec 测试茧