我试图在另一个来源的文件中使用以下命令,但该变量似乎没有用处。 PYTHONPATH var由lib//site-packages
而不是lib/python2.7/site-packages
my_path的:
set pyver [ exec python -c {import sys;print 'python%d.%d'%(sys.version_info[0],sys.version_info[1])} ]enter code here
array set paths {
PATH bin
PYTHONPATH lib/$pyver/site-packages
}
主:
#%Module1.0########################################
##
## Modulefile for texworks
#
source my_path
foreach p [array names paths] {
prepend-path $p $paths($p)
}
答案 0 :(得分:1)
如果你这样初始化数组paths
:
array set paths {
PATH bin
PYTHONPATH lib/$pyver/site-packages
}
成员初始化周围的大括号阻止了变量pyver
的变量替换。要允许替换变量,您需要用双引号替换大括号(这种风格稍差)或将其写为
array set paths [list \
PATH bin \
PYTHONPATH lib/$pyver/site-packages \
]
或(分别设置每个成员)
set paths(PATH) bin
set paths(PYTHONPATH) lib/$pyver/site-packages
或(强制替换)
array set paths [subst {
PATH bin
PYTHONPATH lib/$pyver/site-packages
}]