🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

3994閲覧

WinForm上からAnacondaの仮想環境をActivateしたい

stnan_08

総合スコア4

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/11/29 08:48

前提・実現したいこと

GUI(C#)からPython上の処理を呼び出すため、Process通信を介して
Pythonの実行ファイルとスクリプトを呼び出し、処理結果を標準入出力経由で
GUIに受け取ろうとしています。

Pythonの動作環境はAnacondaを用いて仮想環境を一つ作り、
その中に必要なライブラリを詰めて構築しています。

Python上の処理を実行する前には仮想環境のactivateが必要なのですが、
activateはAnacondaのGUIかターミナルでしか行えず、
GUI(C#)からどのように仮想環境をactivateすればよいのか、
その方法が解りません。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

C#

1private void button1_Click(object sender, EventArgs e) 2{ 3 //インタプリタのパス 4 var InterpreterPath = @"C:\Users\Username.conda\envs\tflow_cv\python.exe"; 5 6 //スクリプトのパス 7 var ScriptPath = @"D:\script.py"; 8 9 var arguments = new List<string> 10 { 11 ScriptPath , 12 "--data_dir=D:\dataset", 13 }; 14 15 var process = new Process() 16 { 17 StartInfo = new ProcessStartInfo(InterpreterPath) 18 { 19 UseShellExecute = false, 20 RedirectStandardOutput = true, 21 RedirectStandardError = true, 22 Arguments = string.Join(" ", arguments), 23 } 24 }; 25 26 process.OutputDataReceived += CaptureOutPut; 27 process.ErrorDataReceived += CaptureError; 28 process.Start(); 29 process.BeginOutputReadLine(); 30 process.BeginErrorReadLine(); 31 process.WaitForExit(); 32} 33 34void CaptureOutPut(object sender, DataReceivedEventArgs e) 35{ 36 PyDataReceived(sender, e); 37} 38 39void CaptureError(object sender, DataReceivedEventArgs e) 40{ 41 PyDataReceived(sender, e); 42} 43 44void PyDataReceived(object sender, DataReceivedEventArgs e) 45{ 46 if (e.Data == null) return; 47 //文字列の受取 48 Console.WriteLine(e.Data); 49 BeginInvoke(new DisplayTextDelegate(DisplayText2), new object[] { e.Data }); 50}

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

OS:Win10
PythonVer:3.7.5  Anacondaの仮想環境上で動作

開発環境
GUI(C#) : VS2017
Python : VScode

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

anacondaは使った事はありませんが、activateはバッチだそうですから、中身を見て同様の処理をするなり、それが難しければバッチファイルをコピペし、最後にpythonスクリプトを実行するコマンドを追加して、そのバッチファイルを起動するようにしたらいかがですか。

投稿2019/11/29 11:38

katsuko

総合スコア3538

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問