2012-02-22 80 views
0

我正在使用ctypes加載我的庫。代碼是一樣的東西如何使用python腳本在mac上導出DYLD_LIBRARY_PATH

currPath = os.getcwd() 
libPath = os.path.join(currPath, platform) 
print libPath 
if(platform == 'win32'): 
    os.environ['PATH'] = os.environ['PATH'] + r';' + libPath 
if(platform == 'darwin'): 
    os.environ['DYLD_LIBRARY_PATH'] = libPath {/Users/labuser/Desktop/lib} 
print os.environ['DYLD_LIBRARY_PATH'] 

但是當我嘗試加載我的圖書館,它沒有找到庫路徑。

什麼是可能的解決方案。在啓動python腳本之前在終端上,我輸出DYLD_LIBRARY_PATH = PATH,那麼我的python腳本就可以正常工作。

+1

你見過這個問題/答案:http://superuser.com/questions/282450/where-do-i-set-dyld-library-path-on-mac-os-x-and-is-it -一個好主意 ? – summea 2012-02-22 06:38:47

回答

1

如果您試圖在加載庫代碼的同一腳本中設置DYLD_LIBRARY_PATH,我認爲這不起作用。環境變量需要在python啓動之前從shell中設置。無論如何,在os.environ中設置它不會超越當前的Python環境。

@summea在他的註釋鏈接中提到的是需要創建某種類型的shell腳本,或者通過〜/ .profile或任何與您的操作系統和shell相同的位置將其添加到shell環境中。

它的工作原理是,當你導出變量然後啓動你的腳本時,該變量是在python啓動時設置的。同樣你也可以用DYLD_LIBRARY_PATH="path" ./script.py之類的東西啓動你的腳本,它也可以用於臨時變量設置。

相關問題