我正在尝试为需要 PyTorch 的 Windows 打包一个 python 应用程序。我们有几个限制让这变得困难:我们的最终用户有一个受限的 IT 环境,所以我们不能发布到 PyPI 或 Anaconda,我们的最终用户可能没有他们自己的 Windows 机器上的管理员访问权限。
过去我们使用cx_Freeze
效果很好,我可以用 构建这个应用程序cx_Freeze
,但是测试表明某些机器在openmp
没有安装到该机器上时会出现错误。
现在,我正在尝试找到一种通过 anaconda 打包和安装的方法,因为 anaconda 可以安装非 python 要求(如openmp
)。我可以使用 . 创建环境安装程序constructor
,但在将我们的应用程序构建到 conda 包中时遇到问题:在我们本地 gitlab 的 pip 中安装了一些依赖项,但 conda 不能正确处理这些依赖项。
我目前的计划是:
- 将所有本地依赖项转换为 conda 包
- Conda 构建主应用程序,使用本地 conda 包作为运行依赖项
- 用于
constructor
构建安装程序 - 添加一个
post_install
脚本来constructor
创建一个快捷方式来调用已安装的 python 和脚本。
但是,在我看来,可能有更好的方法来做到这一点。使用 Python 应用程序打包 PyTorch 或其他非 Python 依赖项的最佳实践是什么?