1

私は次のことを成し遂げるための良い方法を探しています:

したがって、Plinkを使用してWindowsのExcel VBAマクロから呼び出されたPerlスクリプトから呼び出すことにより、UnixのPythonで実行する必要のあるスクリプトがあります。依存関係の問題により、Pythonスクリプトはcshまたはbashのいずれかで実行する必要があり、スクリプトを実行する前に、export/setenvを使用していくつかのライブラリを追加する必要があります。ただし、デフォルトでは、perlはshシェルで実行されるため、すべての依存関係を追加してPythonスクリプトを実行する方法はありません。

したがって、次のいずれかがあるかどうか疑問に思っています。1. perlスクリプトでshシェルに依存関係を追加する方法、または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への追加が何らかの理由で機能しなかったようです。その後、すべてを1行にまとめることで、すべてがスムーズに実行されます

基本的にはこんな感じです

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

お役に立てば幸いです。

于 2012-05-17T13:56:16.990 に答える