当前位置: 首页 > 知识库问答 >
问题:

输入错误:libGL。所以1: 无法打开共享对象文件:导入OCC时没有此类文件或目录

山乐生
2023-03-14

我有一个Django应用程序,它被部署到Amazon Elastic Beanstalk(在64位AmazonLinux2/3.0.3上运行的Python 3.7)。我已经安装了anacondapythonoc-core包,方法是在中创建一个10_anaconda.config文件夹。

10_蟒蛇。配置;

commands:
  00_download_conda:
    command: 'wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh'
  01_install_conda:
    command: 'bash Anaconda3-2020.02-Linux-x86_64.sh -b -f -p /anaconda'
  02_conda_install_pythonocc: 
    command: '/anaconda/bin/conda install -y -c dlr-sc pythonocc-core=7.4.0'

然后,我在我的一个应用程序中创建了一个文件夹,并创建了一个init。py和cadLoader。将文件复制到该文件夹中。我已将anaconda路径添加到\uu init\uuuu。py,它位于cad文件夹中;

import sys
sys.path.append('/anaconda/lib/python3.7/site-packages')

我已经将导入行添加到cadLoader。py用于尝试;

import os
from OCC.Extend.DataExchange import read_stl_file
from OCC.Display.SimpleGui import init_display
from OCC.Core.GProp import GProp_GProps
from OCC.Extend.DataExchange import read_step_file
from OCC.Extend.DataExchange import read_iges_file
from OCC.Core.Bnd import Bnd_Box
from OCC.Core.BRepMesh import BRepMesh_IncrementalMesh
from OCC.Core.BRepBndLib import brepbndlib_Add
from OCC.Core.BRepGProp import brepgprop_VolumeProperties

当我将其部署到Elastic Beanstalk时,我得到了下面的错误行。

from data.modellib.cad.cadLoader import CADLoader
File "/var/app/current/data/modellib/cad/cadLoader.py", line 2, in <module>
from OCC.Extend.DataExchange import read_stl_file
File "/anaconda/lib/python3.7/site-packages/OCC/Extend/DataExchange.py", line 32, in <module>
from OCC.Core.XCAFDoc import (XCAFDoc_DocumentTool_ShapeTool,
File "/anaconda/lib/python3.7/site-packages/OCC/Core/XCAFDoc.py", line 18, in <module>
from . import _XCAFDoc
ImportError: libGL.so.1: cannot open shared object file: No such file or directory

根据这个问题,我添加了一个。安装libGL的配置文件如下:

packages:
  yum:
    mesa-libGL : []
    mesa-libGL-devel : []

为了解决ZLIB_1.2.9版本未找到的错误,我添加了如下配置文件。

commands:
    00_download_zlib:
        command: 'wget https://github.com/madler/zlib/archive/v1.2.9.tar.gz'
    01_open_zlib:
        command: 'tar xzvf v1.2.9.tar.gz'
    02_into_zlib:
        command: 'cd zlib-1.2.9'
    03_make_zlib:
        command: 'make'
    04_make_install_zlib:
        command: 'make install'
    05_libz_so:
        command: 'ln -fs /usr/local/lib/libz.so.1.2.9 /lib64/libz.so'
    06_libz_so_1:
        command: 'ln -fs /usr/local/lib/libz.so.1.2.9 /lib64/libz.so.1'

但是由于执行了make命令,我的部署失败了。这是我的错误消息:

Unhandled exception during build: Command 03_make_zlib failed
Traceback (most recent call last):
  File "/opt/aws/bin/cfn-init", line 171, in <module>
    worklog.build(metadata, configSets)
  File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 129, in build
    Contractor(metadata).build(configSets, self)
  File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 530, in build
    self.run_config(config, worklog)
  File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 542, in run_config
    CloudFormationCarpenter(config, self._auth_config).build(worklog)
  File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 260, in build
    changes['commands'] = CommandTool().apply(self._config.commands)
  File "/usr/lib/python2.7/site-packages/cfnbootstrap/command_tool.py", line 117, in apply
    raise ToolError(u"Command %s failed" % name)
ToolError: Command 03_make_zlib failed

如何解决此问题并在应用程序中使用OCC软件包?


共有1个答案

邓星光
2023-03-14

/lib64/libz.so.1:未找到版本ZLIB_1.2.9

Amazon Linux 2提供了1.2.7版:

Name        : zlib
Arch        : i686
Version     : 1.2.7
Release     : 18.amzn2
Size        : 91 k
Repo        : amzn2-core/2/x86_64
Summary     : The compression and decompression library
URL         : http://www.zlib.net/
License     : zlib and Boost
Description : Zlib is a general-purpose, patent-free, lossless data compression
            : library which is used by many different programs.

您可以尝试手动将zlib升级到1.2.9,例如以root身份执行以下步骤(如果这些步骤有效,您可以通过ebextensions实现自动化):


wget https://github.com/madler/zlib/archive/v1.2.9.tar.gz
tar xzvf v1.2.9.tar.gz
cd zlib-1.2.9
./configure
make
make install

ln -fs /usr/local/lib/libz.so.1.2.9 /lib64/libz.so
ln -fs /usr/local/lib/libz.so.1.2.9 /lib64/libz.so.1

这必须仔细测试,因为手动升级可能会破坏东西。这里有一些其他升级选项。

commands:
    00_download_zlib:
        command: |
            wget https://github.com/madler/zlib/archive/v1.2.9.tar.gz
            tar xzvf v1.2.9.tar.gz
            cd zlib-1.2.9
            ./configure
            make
            make install
            ln -fs /usr/local/lib/libz.so.1.2.9 /lib64/libz.so
            ln -fs /usr/local/lib/libz.so.1.2.9 /lib64/libz.so.1
 类似资料:
  • 尝试在我的14.10版ubuntu上安装rJava包,使用以下代码 在重新安装jdk后,遇到了一些与jni相关的错误,包括jni问题,并尝试再次运行相同的代码,得到了该错误 寻找解决方案,找到所有建议(对于x64)执行这些命令的人 但这不起作用,我还能做什么?我会提供任何需要的细节。

  • 我有一个巨大的麻烦来运行我的代码。我已经尝试过重新安装packges,在环境中安装等等,但是我认为我做得不对。 我得到这个信息: 使用TensorFlow后端。 回溯(最近一次呼叫最后一次): 文件“”,第1行,在导入keras中 文件“/home/wagner/anaconda3/lib/python3.5/site packages/keras/init.py”,第3行,在from中。导入UT

  • 我正在尝试安装tensorflow的对象检测模块,但在运行以下命令时: python3对象检测/builders/model\u builder\u test.py 我得到以下错误。我已经安装了CUDA8.0,9.0,9.1和cuDNN 6和7,但仍然有以下错误。我感谢你的建议,谢谢! 回溯(最后一次调用):文件“/usr/local/lib/python3.5/dist-packages/ten

  • 我正试图在Ubuntu 18.04中安装tensorflow。CUDA和cudnn测试均通过。这个问题的标题是我在测试tensorflow安装时的错误。我在Ubuntu 16.04上看到了同样的问题,但答案并没有立即起到帮助作用。一个答案建议使用strace,但我不理解输出。 以下是我的完整错误消息: 回溯(最后一次调用):文件“/home/dma/tensorflow/lib/python3.6

  • 问题内容: 该程序是Xenomai测试套件的一部分,可从Linux PC交叉编译为Linux + Xenomai ARM工具链。 编辑: 确定,我没有注意到.1结尾是文件名的一部分。那到底是什么意思呢? 问题答案: 更新 尽管下面我写的是关于共享库的一般答案,但我认为这类消息的最常见原因是因为您已经安装了一个软件包,但没有安装该软件包的“ -dev”版本。 好吧,这不是在说谎-该列表中没有任何内容

  • 我正在编写一个在后端使用redis的C程序。 我尝试过构建/安装hiredis(make 使用以下命令行构建:gcc-v example.c-l hiredis-I/usr/local/include/hiredis/ 我尝试过的事情: pkg info hiredis返回0 通过(make)卸载/重新安装 都没有运气。 我猜我没有为gcc正确链接程序,但是文档中没有任何构建示例。 我做错了什么,