我正在编写一个非常大的Python应用程序;该应用程序实际上很大程度上是用C和C ++(Qt)编写的几个共享库的包装。我在没有管理员权限的情况下'安装'这个,所以包括共享库,二进制文件和Python模块在内的所有内容都必须位于非标准位置,即我有这样的情况:
整个事情是作为开源分发的,我需要找到一种相当优雅和简单的方法来设置必要的环境变量。整个过程与版本控制软件一起分发;因此必须在某些“本地添加”中设置环境变量,例如:
#!/bin/bash
export LD_LIBRARY_PATH /funny/path/lib:$LD_LIBRARY_PATH
export PYTHONPATH /funn/path/python/lib:$PYTHONPATH
#
exec python main.py
但是我在Python编程是有原因的 - 我讨厌这些shell脚本。任何关于最优雅的方式的观点都会很好。
乔金姆
答案 0 :(得分:1)
为什么浪费时间讨厌shell脚本?
由于您不会安装在标准位置,(并且似乎无法让系统管理员在标准位置安装所需的软件包),这几乎是您唯一的选择。
您可以在Python中设置PYTHONPATH
。它在sys.path
。设置环境变量(如LD_LIBRARY_PATH
)更难,因为Linux限制了应用程序改变环境的方式。
您可以使用os.exec
在已修改的环境中运行流程。使用Python然后执行os.exec..e()
来调用Python有点奇怪,但这是设置其他环境变量的简单方法。