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

部署Django+React项目至Railway时遇libstdc++.so.6缺失错误求助

解决Railway部署Django+React项目时libstdc++.so.6缺失问题

问题背景

我正尝试将前端使用React的Django项目部署至Railway平台。该项目此前部署在Heroku,但添加OpenAI的whisper包后slug体积过大,因此转用Railway。已有同架构的Django+React项目在Railway正常运行,故问题源于依赖包:gpt-index包依赖pandas时触发ImportError: libstdc++.so.6: cannot open shared object file: No such file or directory。

当前Nix-packs配置

[phases.setup]
nixPkgs = ['nodejs-16_x', 'npm-8_x ', 'python310', 'postgresql', 'gcc ']

[phases.install]
cmds = ['npm i ', 'python -m venv /opt/venv && . /opt/venv/bin/activate && pip install -r requirements.txt']

[phases.build]
cmds = ['npm run build']

[start]
cmd = '. /opt/venv/bin/activate && python manage.py migrate && gunicorn backend.wsgi'

完整错误回溯

Traceback (most recent call last):
File "/app/manage.py", line 22, in <module>
main()
File "/app/manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "/opt/venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line
utility.execute()
File "/opt/venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 420, in execute
django.setup()
File "/opt/venv/lib/python3.10/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/opt/venv/lib/python3.10/site-packages/django/apps/registry.py", line 91, in populate
app_config = AppConfig.create(entry)
File "/opt/venv/lib/python3.10/site-packages/django/apps/config.py", line 193, in create
import_module(entry)
File "/nix/store/al6g1zbk8li6p8mcyp0h60d08jaahf8c-python3-3.10.9/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/opt/venv/lib/python3.10/site-packages/gpt_index/__init__.py", line 18, in <module>
from gpt_index.indices.keyword_table import (
File "/opt/venv/lib/python3.10/site-packages/gpt_index/indices/__init__.py", line 4, in <module>
from gpt_index.indices.keyword_table.base import GPTKeywordTableIndex
File "/opt/venv/lib/python3.10/site-packages/gpt_index/indices/keyword_table/__init__.py", line 4, in <module>
from gpt_index.indices.keyword_table.base import GPTKeywordTableIndex
File "/opt/venv/lib/python3.10/site-packages/gpt_index/indices/keyword_table/base.py", line 16, in <module>
from gpt_index.indices.keyword_table.utils import extract_keywords_given_response
File "/opt/venv/lib/python3.10/site-packages/gpt_index/indices/keyword_table/utils.py", line 7, in <module>
import pandas as pd
File "/opt/venv/lib/python3.10/site-packages/pandas/__init__.py", line 48, in <module>
from pandas.core.api import (
File "/opt/venv/lib/python3.10/site-packages/pandas/core/api.py", line 47, in <module>
from pandas.core.groupby import (
File "/opt/venv/lib/python3.10/site-packages/pandas/core/groupby/__init__.py", line 1, in <module>
from pandas.core.groupby.generic import (
File "/opt/venv/lib/python3.10/site-packages/pandas/core/groupby/generic.py", line 76, in <module>
from pandas.core.frame import DataFrame
File "/opt/venv/lib/python3.10/site-packages/pandas/core/frame.py", line 172, in <module>
from pandas.core.generic import NDFrame
File "/opt/venv/lib/python3.10/site-packages/pandas/core/generic.py", line 169, in <module>
from pandas.core.window import (
File "/opt/venv/lib/python3.10/site-packages/pandas/core/window/__init__.py", line 1, in <module>
from pandas.core.window.ewm import (
File "/opt/venv/lib/python3.10/site-packages/pandas/core/window/ewm.py", line 15, in <module>
import pandas._libs.window.aggregations as window_aggregations
ImportError: libstdc++.so.6: cannot open shared object file: No such file or directory

解决方案

1. 补充libstdc++依赖到Nix配置

libstdc++.so.6是GNU C++标准库文件,需要在Nix的依赖列表中明确添加。修改你的Nix-packs配置,更新nixPkgs并移除多余空格:

[phases.setup]
nixPkgs = ['nodejs-16_x', 'npm-8_x', 'python310', 'postgresql', 'gcc', 'libstdcxx5']

[phases.install]
cmds = ['npm i', 'python -m venv /opt/venv && . /opt/venv/bin/activate && pip install -r requirements.txt']

[phases.build]
cmds = ['npm run build']

[start]
cmd = '. /opt/venv/bin/activate && python manage.py migrate && gunicorn backend.wsgi'
  • libstdcxx5是Nixpkgs中提供libstdc++的包,添加后会自动安装对应的库文件。
  • 移除原配置中每个包名后的多余空格(如npm-8_x 、gcc ),避免Nix解析依赖时出错。

2. 强制指定库路径(可选)

如果添加依赖后仍出现路径问题,可在启动命令中手动指定LD_LIBRARY_PATH,确保系统能找到libstdc++:

[start]
cmd = 'export LD_LIBRARY_PATH=$(find /nix/store -name "gcc-*" -type d | head -1)/lib64:$LD_LIBRARY_PATH && . /opt/venv/bin/activate && python manage.py migrate && gunicorn backend.wsgi'

该命令会自动查找Nix安装的gcc路径,并将其lib64目录加入库路径。

3. 提前验证库文件存在(可选)

在安装阶段添加检查命令,确认libstdc++已正确安装,提前排查问题:

[phases.install]
cmds = [
    'npm i',
    'ls /nix/store/*libstdcxx*/lib/libstdc++.so.6',
    'python -m venv /opt/venv && . /opt/venv/bin/activate && pip install -r requirements.txt'
]

如果命令执行失败,说明依赖未正确安装,可进一步排查Nix配置问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 12:05:20