0

Windowsパスにリストされていない可能性のあるフォルダーでpython検索を行う方法を探していました。このようにして、c:\program files の下にインストールしないことを決定した場合に、インストールされたアプリの非標準の場所を説明できます。たとえば、UNIX ユーティリティが広告ドライブなどにインストールされている場合。

Windows パスを常に変更するのではなく。レジストリを読んでインストールされたパスを見つけ、それをそのpythonインスタンスの検索パスに追加しても、探しているものを見つけることができると思いました。問題は、標準的な名前を持つ定義済みのサブフォルダーも考慮する必要があることです。

私は検索しましたが、見つけたもののほとんどはpythonパスの変更に関連しており、pythonはモジュールを見つけましたが、これは実際には役に立ちません。

sys.path.append にもいくつかありますが、これがこれで機能するかどうかについては実際には何も見つかりません。os.path のドキュメントも読んだところ、結合が機能するように見えましたが、このニーズには実際には適合していないようでした。

私がここに来ていないこと、またはこれができないことはありますか?

最後に、クロスプラットフォーム対応にする必要があります。独自のパスを見つけて、必要に応じて追加できますが、パスに追加する方法が必要なだけです。

ありがとう

4

1 に答える 1

0

パスに一時的に追加するには、たとえば次のようにします。

    OS のインポート
    システムをインポート

    sys.platform == 'win32' の場合:
        9 月 = ';'
    そうしないと:
        9 月 = ':'

    os.environ['PATH'] += sep + r'"C:\QA\Hello World"'

Windows 環境変数では大文字と小文字が区別されませんが、UNIX では大文字と小文字が区別されることに注意してください。これは、このプロセスのパスのみを追加し、それは子です。

プログラムを実行するときは、%PATH% (または $PATH) を使用するシェルを使用する必要があります。

import subprocess
proc = subprocess.Popen('hello.exe',shell=True) 
proc.wait()
于 2013-04-23T19:34:46.887 に答える