分发python应用程序

时间:2011-04-01 21:47:03

标签: python

我正在编写一个非常大的Python应用程序;该应用程序实际上很大程度上是用C和C ++(Qt)编写的几个共享库的包装。我在没有管理员权限的情况下'安装'这个,所以包括共享库,二进制文件和Python模块在内的所有内容都必须位于非标准位置,即我有这样的情况:

      
  1. / funny / path / lib
  2. 中的共享库   
  3. 安装在/ funny / path / python / lin
  4. 中的Python模块   
  5. python解释器本身也可能位于/ nonstandard / location
  6. 整个事情是作为开源分发的,我需要找到一种相当优雅和简单的方法来设置必要的环境变量。整个过程与版本控制软件一起分发;因此必须在某些“本地添加”中设置环境变量,例如:

    #!/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脚本。任何关于最优雅的方式的观点都会很好。

    乔金姆

1 个答案:

答案 0 :(得分:1)

为什么浪费时间讨厌shell脚本?

由于您不会安装在标准位置,(并且似乎无法让系统管理员在标准位置安装所需的软件包),这几乎是您唯一的选择。

您可以在Python中设置PYTHONPATH。它在sys.path。设置环境变量(如LD_LIBRARY_PATH)更难,因为Linux限制了应用程序改变环境的方式。

您可以使用os.exec在已修改的环境中运行流程。使用Python然后执行os.exec..e()来调用Python有点奇怪,但这是设置其他环境变量的简单方法。