You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Heroku部署Django应用时如何手动添加不可pip安装的IfcOpenShell模块

解决Heroku部署Django应用时IfcOpenShell模块缺失的方案

以下两种方法均可实现手动添加模块到Heroku部署环境,无需通过pip安装:

方法1:直接将模块打包到项目仓库部署

  • 下载适配Linux x86_64架构、和你项目Python版本完全匹配的IfcOpenShell预编译包
  • 解压后拿到完整的ifcopenshell文件夹,将其放到Django项目根目录,和manage.py文件同级
  • 本地测试项目可正常import该模块后,将ifcopenshell文件夹随项目代码一起提交到代码仓库,推送到Heroku即可。Heroku运行时会自动将项目根目录加入Python模块搜索路径,无需额外配置即可识别该模块。

方法2:通过构建钩子在部署时自动安装

如果不想将第三方模块存入自己的代码仓库,可使用Heroku的post_compile构建钩子实现动态安装:

  • 在项目根目录新建bin文件夹,在文件夹内创建post_compile文件,写入如下内容:
#!/usr/bin/env bash
# 替换下方变量值为对应版本的IfcOpenShell预编译包下载链接
IFC_OPEN_SHELL_URL="对应版本预编译包地址"
curl -L $IFC_OPEN_SHELL_URL -o ifcopenshell.tar.gz
tar -xzf ifcopenshell.tar.gz
# 自动匹配Python版本将模块移动到对应site-packages目录
mv ifcopenshell /app/.heroku/python/lib/python$(python -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")/site-packages/
rm ifcopenshell.tar.gz
  • 本地执行命令给该文件添加执行权限:chmod +x bin/post_compile
  • 将bin/post_compile文件提交到代码仓库推送到Heroku,后续每次部署时平台会自动执行该脚本完成模块安装。

注意:两种方法都必须使用适配Linux x86_64架构的IfcOpenShell预编译包,不能直接上传本地Windows或macOS环境下使用的模块文件,否则部署后会出现运行报错。

内容的提问来源于stack exchange,提问作者Bruno_BNF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:27:05