如何为python脚本导入LD_LIBRARY_PATH?无root权限。没有重新启动apache服务器的权限

时间:2019-03-15 02:44:03

标签: python postgresql apache cgi web-hosting

我在GoDaddy托管服务中有一个共享托管。它有以下限制。

  • 无root访问权限
  • 没有重新启动apache服务器的权限

我的托管服务系统和应用程序规范。

  • Postgres 10.7
  • python3
  • OS-Linux版本2.6.32-896.16.1.lve1.4.54.el6.x86_64(mockbuild@buildfarm03.cloudlinux.com)(gcc版本4.4.7 20120313(Red Hat 4.4.7-18)

我使用cgi脚本将apache服务器重定向到我的Python脚本。 当Python尝试导入psycopg2模块时,抛出以下错误

 /home/user/python_base/lib/python3.4/site-packages/psycopg2/_psycopg.cpython-34m.so: undefined symbol: PQescapeIdentifier

我将postgresql/lib路径导出到LD_LIBRARY_PATH,并在本地重新启动Python脚本,并且运行良好。

但是,由于我无法重新启动apache服务器,因此我猜测apache运行所在的进程没有更新LD_LIBRARY_PATH。因此错误仍然存​​在。我正在运行python环境。我将所有库文件从postgresql/lib复制到mypythonenv/lib,但仍然是徒劳的。

1 个答案:

答案 0 :(得分:0)

您可以在导入psycopg2之前在os.environ 中设置环境变量。