我尝试将路径导出到系统环境,然后会发生什么:
路径是BerkleyDB library的(需要搁置Python库,没有它我有一个错误:File "/kplusnfs/script/ns/processes/current/kondor_processes.py", line 214, in load_processes_list_for_hostname
data_file = shelve.open((os.path.join(config.path_to_script, config.shelve_database)))
File "/usr/local/lib/python2.6/shelve.py", line 234, in open
return DbfilenameShelf(filename, flag, protocol, writeback)
File "/usr/local/lib/python2.6/shelve.py", line 218, in __init__
Shelf.__init__(self, anydbm.open(filename, flag), protocol, writeback)
File "/usr/local/lib/python2.6/anydbm.py", line 82, in open
mod = __import__(result)
File "/usr/local/lib/python2.6/dbhash.py", line 8, in
import bsddb
File "/usr/local/lib/python2.6/bsddb/__init__.py", line 64, in
import _bsddb
ImportError: ld.so.1: python: fatal: libdb-4.7.so: open failed: No such file or directory
当我将export添加到.bashrc行时:
^{pr2}$
然后重新加载bash,然后加载库。在
库路径包含文件:ll /kplusnfs/script/ns/BerkleyDB/lib
total 12936
-rwxrwxrwx 1 c310176 atwuser 1470380 Aug 2 03:19 libdb-4.7.a
-rwxrwxrwx 1 c310176 atwuser 1078 Aug 2 03:19 libdb-4.7.la
-rwxrwxrwx 1 c310176 atwuser 1211376 Aug 2 03:19 libdb-4.7.so
-rwxrwxrwx 1 c310176 atwuser 1211376 Aug 2 03:19 libdb-4.so
-rwxrwxrwx 1 c310176 atwuser 1470380 Aug 2 03:19 libdb.a
-rwxrwxrwx 1 c310176 atwuser 1211376 Aug 2 03:19 libdb.so
我试图在代码中使用:
0import os
1os.environ["LD_LIBRARY_PATH"] = "/kplusnfs/script/ns/BerkleyDB/lib/"
二os.system('export LD_LIBRARY_PATH="/kplusnfs/script/ns/BerkleyDB/lib"')
三os.putenv("LD_LIBRARY_PATH", "/kplusnfs/script/ns/BerkleyDB/lib/")
每次都没用。但下面的选项2+用于重新加载bash:os.system('bash')
确实有帮助。但脚本的运行是荒谬的,因为它正在加载bash并离开以前的操作。。。在
所以我的问题是-有没有可能不重新加载bash就不仅为我的用户设置变量,还可以加载库?在
我没有root权限,因此无法更改系统中的任何内容(包括安装任何Python库)