2014-04-14 38 views
1

環境變量與gnuplot,我需要設置export GDFONTPATH=${HOME}/fonts顯示正確的字體。或者,我有這個警告信息「使用內部不可縮放字體打開字體」arial「時找不到/打開字體」。應用與subprocess.Popen

使用Python,我嘗試使用此代碼自動調用gnuplot。

GNUPLOT=distutils.spawn.find_executable('gnuplot')   
my_env = os.environ 
my_env["GDFONTPATH"] = '${HOME}/fonts' 
p = Popen([GNUPLOT, config["file_path"]], shell=False, env=my_env) 
p.communicate() 

但是,我有警告消息。什麼可能是錯誤的?如何在Python中應用環境變量?

Could not find/open font when opening font "arial", using internal non-scalable font 

回答

2

我有一種感覺,您直接使用'$ {HOME}'的問題。試試這個:

my_env['GDFONTPATH'] = os.path.join(my_env['HOME'], 'fonts') 
+2

或'os.path.expanduser( '〜/字體')'(與gnuplot的4.6.4這裏測試) – jfs

1

讓我提出一個有點不同的解決方案:

pngcairo終端,它的方式產生更好的效果比png終端,以及其他開羅終端(wxtpdfcairo)使用fontconfig

有了這個,你只能創建一個文件~/.fonts.conf與內容:

<?xml version="1.0"?><!DOCTYPE fontconfig SYSTEM "fonts.dtd"> 
<fontconfig> 
<dir>~/fonts</dir> 
</fontconfig> 

和多數民衆贊成它。 (可能您必須檢查可用的字體名稱,例如fc-list | grep $HOME/fonts,但通常字體文件名稱不言自明)。然後使用例如

set terminal pngcairo font 'DroidSerif'