2017-09-07 8 views
0

私はPythonにはとても新しく、私はC#コードから実行したいPythonコードを書いています。.exeファイルなしでC#からpythonを実行するには

私がすでに見た答えはすべて、pythonからexeファイルを作成し、それをシステムコールで実行することでした。

しかし、私はPythonからexeファイルを作る必要がない方法を探しています。amdは引数を持つコマンドラインのようなコマンドを書くことができます。

C:\Users\ntuser> python C:\Users\ntuser\Documents\run_python.py 3 

これを行う方法はありますか? 私は1つのコマンドを渡す方法が1つ見つかりましたが、2つのコマンドを実行する必要があります。1. "C:\ Users \ ntuser"に移動します。2. Pythonコードを実行します。

ありがとう

+0

あなたのユーザにPythonインタプリタがインストールされていることを確認してください( 'PATH'の中に)?もしあなたがそれを確信できるならば、あなたは 'System.Process'クラスを使うことができます – UnholySheep

+0

私は彼がそれを持っていると確信しています。私は 'System.Process'クラスで1つのコマンドを渡すことができます。 – STF

+0

(作業ディレクトリ)を変更する場合、 'Process'を使用する必要はありません - [' Directory.SetCurrentDirectory'](https://msdn.microsoft.com/en-us/library/system.io.directory .setcurrentdirectory(v = vs.110).aspx)を参照してください。 (あなたが何か他のものを意味している場合を除いて* "行く" *、その場合は明確にする必要があります) – UnholySheep

答えて

0

OK、解決策が見つかりました。 ヘルプのUnholySheepに感謝します。あなたがする必要がどのような

は次のとおりです。

  1. 自分のホームディレクトリにコードによってsystem variable
  2. 行くようにパイソンを行います

    Directory.SetCurrentDirectory(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile));

  3. を呼び出すためにこのコードを追加します。 Pythonコード:

System.Diagnostics.Process process = new System.Diagnostics.Process(); System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;//if you want to hide the window startInfo.FileName = "cmd.exe"; startInfo.Arguments = "/C python pytonPath\\python_code.py"; process.StartInfo = startInfo; process.Start(); process.WaitForExit();//if you want to wait

関連する問題