1

我正在寻找一种完成以下工作的好方法:

因此,我有一个脚本,我需要通过调用 Perl 脚本在 Unix 中的 Python 中运行该脚本,而 Perl 脚本又使用 Plink 从 Windows 中的 Excel VBA 宏调用。由于依赖问题,Python 脚本必须在 csh 或 bash 中运行,我需要在运行脚本之前使用 export/setenv 添加一些库。但是默认情况下,perl 在 sh shell 中运行,因此,我无法添加所有依赖项并让 Python 脚本运行。

所以,我只是想知道是否有:1.一种方法让我在 perl 脚本中向 sh shell 添加依赖项,或者 2.强制我的 perl 脚本在 csh 中运行(首选,因为出于某种原因 .bashrc 用于帐户遇到权限问题)。

非常感谢!

4

3 回答 3

2

“3. 在 Perl 或 Python 脚本中设置适当的环境变量”怎么样?

$ENV{'PATH'} = ...

...

os.environ['PATH'] = os.pathsep.join(newpaths + os.environ['PATH'].split(os.pathsep))

(不知道如何在 Perl 中获取路径分隔符,sorz)

于 2012-05-17T02:25:16.313 回答
1

要强制外壳csh,请在 Perl 中尝试以下操作:

`/bin/csh -c "command_name"`;

编辑

您可以像这样使用 ENV 变量。试试看:

$s = `/bin/bash -c 'VAR_FOO=753; echo \$VAR_FOO'`;
print $s;
于 2012-05-17T00:00:09.060 回答
0

我最终只是更改了 .cshrc 脚本,显然是 PATH 的添加,出于某种原因,对我不起作用。之后,通过将所有内容放在一条线上,一切都顺利进行

所以基本上它看起来像这样

/path/to/.cshrc && /python/path/to/python

希望有帮助!

于 2012-05-17T13:56:16.990 回答