ก่อนอื่น ฉันเป็นมือใหม่ ดังนั้นโปรดอดทนกับฉันด้วย
ฉันกำลังพยายามปรับใช้เว็บแอป python โดยใช้ Nginx/Gunicorn/Python/Matlab ฉันกำลังใช้ไลบรารี Matlab ที่อัดแน่นบางส่วน (ผ่าน LibraryCompiler) ที่จะเรียกจาก python โดยใช้ import Matlab package
ในสคริปต์ Python
หากต้องการนำเข้าไลบรารีที่บรรจุ Matlab ฉันจำเป็นต้องติดตั้งรันไทม์ Matlab หลังจากติดตั้งรันไทม์ Matlab แนะนำให้ฉันตั้งค่าเส้นทางรันไทม์ของ Matlab เป็น LD_LIBRARY_PATH
ฉันเพิ่มบรรทัดต่อไปนี้โดยใช้ nano ~/.bashrc
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/MATLAB/MATLAB_Runtime/v99/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v99/bin/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v99/sys/os/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v99/extern/bin/glnxa64
หากไม่มีการตั้งค่า LD_LIBRARY_PATH ใน bash พยายามนำเข้าไลบรารี Matlab ที่แพ็ก มันจะเกิดข้อผิดพลาด RuntimeError: On Linux, you must set the environment variable "LD_LIBRARY_PATH" to a non-empty string. For more details, see the package documentation.
หลังจากตั้งค่า LD_LIBRARY_PATH มันทำงานได้อย่างสมบูรณ์แบบในเครื่อง แต่เมื่อฉันใช้ sudo gunicorn3 app:server
มันล้มเหลวในการโหลดสคริปต์ python ของฉัน และมันแสดงข้อความเดียวกันกับว่าฉันไม่ได้ตั้งค่า LD_LIBRARY_PATH
นี่คือสิ่งที่ปรากฏสำหรับฉันเมื่อลองเรียกใช้แอปพลิเคชันเว็บของฉัน
[2020-12-17 20:48:12 +0000] [29324] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/gunicorn/arbiter.py", line 578, in spawn_worker
worker.init_process()
File "/usr/lib/python3/dist-packages/gunicorn/workers/base.py", line 126, in init_process
self.load_wsgi()
File "/usr/lib/python3/dist-packages/gunicorn/workers/base.py", line 135, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/lib/python3/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/lib/python3/dist-packages/gunicorn/app/wsgiapp.py", line 65, in load
return self.load_wsgiapp()
File "/usr/lib/python3/dist-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/lib/python3/dist-packages/gunicorn/util.py", line 377, in import_app
__import__(module)
File "/home/hossamedwee/flaskapplication/app.py", line 30, in <module>
import cyclo
File "/usr/local/lib/python3.6/dist-packages/cyclo/__init__.py", line 283, in <module>
_pir.get_paths_from_os()
File "/usr/local/lib/python3.6/dist-packages/cyclo/__init__.py", line 175, in get_paths_from_os
'For more details, see the package documentation.'))
RuntimeError: On Linux, you must set the environment variable "LD_LIBRARY_PATH" to a non-empty string. For more details, see the package documentation.
กรุณาข้อเสนอแนะใด ๆ ?