2015-11-24 54 views
1

我已經安裝了gdal版本1.11.2,但是我遇到了未定義符號的問題。此提議的解決方案是通過gerrit給出:永久定義環境變量(對於Python gdal未定義符號)

export LD_PRELOAD=/usr/local/lib/libgdal.so.1 

但是,如果我叫命令行的python腳本這僅適用。如果我從subprocess.Popen調用腳本,這顯然不起作用。

有沒有辦法永久定義LD_PRELOAD

回答

1

可以保存導出在/ etc /環境,如果你想擁有它全球範圍內爲每個用戶

,或者您可以使用ENV參數,像這樣:

subprocess.Popen(command, env={'LD_PRELOAD': '/usr/local/lib/libgdal.so.1'}) 

也看這裏: Python subprocess/Popen with a modified environment

+0

謝謝,當腳本運行在sudo或root下時,應該這樣工作嗎? – API

+0

我想是的,是的。 – Serbitar

1

最好的解決方案恕我直言,是解決在操作系統級別的問題。如果你想gdal是隻有你的平臺的一些用戶訪問,每個用戶應該添加一行

export LD_PRELOAD=/usr/local/lib/libgdal.so.1 

在自己.profile文件(假設他們都使用bash或兼容的shell)

另外,如果所有用戶都應該能夠使用gdal,則應將該行添加到系統/etc/profile文件中。