Python在cron中找不到共享库

Python在cron中找不到共享库,python,cron,shared-libraries,Python,Cron,Shared Libraries,我的Python脚本在shell中运行良好。但是,当我cron它(在我自己的帐户下)时,它会给我以下错误: /usr/local/bin/python:加载共享库时出错:libpython2.7.so.1.0:无法打开共享对象文件:没有此类文件或目录 脚本的第一行有: #!/usr/local/bin/python 我知道我的~/.bashrc文件中有下面一行代码,这说明它在shell中工作 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/

我的Python脚本在shell中运行良好。但是,当我cron它(在我自己的帐户下)时,它会给我以下错误:

/usr/local/bin/python:加载共享库时出错:libpython2.7.so.1.0:无法打开共享对象文件:没有此类文件或目录

脚本的第一行有:

#!/usr/local/bin/python
我知道我的~/.bashrc文件中有下面一行代码,这说明它在shell中工作

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
如果我使用下面的cron,它也可以工作,但是它看起来很难看,我讨厌应用于每个cron工作

00 * * * 1-5    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib && /path/somejob.py 
有更好的方法吗?我知道我们的管理员曾经在一些共享nfs路径上安装了早期版本的Python,并且它不需要如前所述的任何系统级配置更改。我们的旧Python脚本只是将这一行作为第一行,没有显式设置LD_LIBRARY_路径

#!/nfs/apps/python/bin/python
在旧的nfs安装中

/nfs/apps/python/
  -- bin
  -- lib
  -- share
  -- include
当前的Python是2.7.3,安装方式如下:(Linux CentOS 6)

更新:

  • 正如ansh0I所建议的,将LD_LIBRARY_PATH添加到cronab的顶部是可行的

  • python抱怨共享库的原因是它安装了--enable shared。因此,python二进制文件要小得多,在/usr/local/lib/libpython2.7.so中共享了许多真正的解释器代码。然后,您需要通过设置LD_library_PATH告诉python在哪里可以找到共享库。如果安装python时没有--enable shared,则二进制文件本身要大得多,并且不需要指定任何LD\u LIBRARY\u路径


  • 假设您的
    LD\u LIBRARY\u PATH=$LD\u LIBRARY\u PATH:/usr/local/lib
    表达式工作正常,您可以在crontab文件的顶部设置环境变量,如下所示

    #Setting up Environment variables
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
    
    #Here follow the cron jobs
    * * * * *   echo $LD_LIBRARY_PATH >> /home/user/logfile.log
    * * * * *   some/cron/job.py
    
    感谢您的更新:)刚刚保存的
    --启用共享
    
    
    #Setting up Environment variables
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
    
    #Here follow the cron jobs
    * * * * *   echo $LD_LIBRARY_PATH >> /home/user/logfile.log
    * * * * *   some/cron/job.py