我正在使用docker映像作为远程解释器来测试我们的应用程序代码。运行测试套件时,Python返回错误,指出它在注册目录中找不到特定的共享库文件。列出的目录和错误消息如下:
The registry is in directory
OnyxOsiris InprocServer32 = /opt/conda/lib/python3.6/site-packages/osl1/onyxosiris.so
但是稍后在容器中有几个快速的cd和ls命令,很明显该文件实际上位于目录中:
(base) root@4dc5e5ce2f65:/# cd /opt/conda/lib/python3.6/site-packages/osl1
(base) root@4dc5e5ce2f65:/opt/conda/lib/python3.6/site-packages/osl1# ls
__init__.py __pycache__ _osl1.so installcomponents.py onyx.so onyxosiris.so osl1.py osl1helperfuncs.py
我觉得我在这里错过了一些重要的事情,但是我不知道是什么。任何帮助将不胜感激!
答案 0 :(得分:0)
问题出在LD_LIBRARY_PATH变量。我假设包含共享对象文件的文件夹将被添加到路径中,因为同一文件夹包含可执行文件。但是,这显然是错误的假设。将此文件夹的路径添加到docker容器内的LD_LIBRARY_PATH环境变量中具有预期的效果。最后,使用docker commit命令创建新映像会生成功能齐全的映像,可以将其有效地用作PyCharm项目中的远程解释器。