4

自動化フレームワークを使用していますが、何度も繰り返した後、次のようなランダム エラーが発生します。誰かがこれが何に対応するかを理解するのを手伝ってくれますか!!

_os.environ['PATH'] = r'C:\DAL;' + _os.environ['PATH']
  File "c:\Python26\lib\os.py", line 420, in __setitem__
    putenv(key, item)
OSError: [Errno 22] Invalid argument

失敗する関数呼び出し:

関数:

    plugin_xml_file_name = plugin_name
else:
    plugin_xml_file_name = plugin_path + "\\" + plugin_name
#

_os.environ['PATH'] = r'C:\Intel\DAL;' + _os.environ['PATH']
_os.environ['PATH'] = r'C:\intel\dal;' + _os.environ['PATH']
_os.environ['PATH'] = _lakemore_path + ';' + _os.environ['PATH']
_os.environ['PATH'] = plugin_path + ';' + _os.environ['PATH']
4

3 に答える 3

4

作成するパスが長すぎるため、OS がこれより長い環境変数を受け入れなくなりました。

パスを 1回だけ延長します。追加するパスの存在をテストします。

path = _os.environ['PATH'].split(_os.pathsep)
for extra in (r'C:\Intel\DAL', r'C:\intel\dal', _lakemore_path, plugin_path):
    if extra not in path:
        _os.environ['PATH'] = _os.pathsep.join(extra, _os.environ['PATH'])

このコードは、まだ存在しない場合にのみ、新しい要素を追加します。

于 2013-06-30T17:09:43.300 に答える