我正在寻找一种很好的方法来完成以下工作:
所以我有一个脚本,我需要在Unix中通过调用Perl脚本在Python中运行,而Perl脚本又是在Windows中使用Plink从我的Excel VBA宏调用的。由于依赖性问题,Python脚本必须在csh或bash中运行,我需要在运行脚本之前使用export / setenv添加一些库。但是默认情况下,perl在sh shell中运行,因此,我无法添加所有依赖项并运行Python脚本。
所以,我只是想知道是否有更多:1。我可以在perl脚本中为sh shell添加依赖项,或者2.强制我的perl脚本在csh中运行(首选,因为某些原因。帐户的bashrc会遇到权限问题。)
非常感谢!
答案 0 :(得分:2)
如何“3.在Perl或Python脚本中设置适当的环境变量”?
$ENV{'PATH'} = ...
...
os.environ['PATH'] = os.pathsep.join(newpaths + os.environ['PATH'].split(os.pathsep))
(不知道如何在Perl中获取路径分隔符,sorz)
答案 1 :(得分:1)
要强制shell csh
,请在Perl中尝试以下内容:
`/bin/csh -c "command_name"`;
修改强>:
你可以像这样使用ENV变量。试试这个:
$s = `/bin/bash -c 'VAR_FOO=753; echo \$VAR_FOO'`;
print $s;
答案 2 :(得分:0)
我最后只是更改了.cshrc脚本,显然由于某些原因,PATH的添加对我来说不起作用。在那之后,通过将所有内容放在一行中,一切都顺利进行
所以基本上它看起来像这样
/path/to/.cshrc && /python/path/to/python
希望有所帮助!