質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python

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

Q&A

解決済

2回答

5602閲覧

C#からPythonソースを利用した際のエラー

say5140

総合スコア12

C#

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python

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

0グッド

0クリップ

投稿2017/02/17 05:58

編集2017/02/17 22:56

Visual Studio2015+ Python Tool for vsの環境で、C#からPythonのソースを利用しようとしています。
VSにはNugetからIronPythonをインストールしていまして、対象のPythonソースはPythonの実行環境で実行できています。

そのソースはnumpy、scipyのライブラリを使用しているのですが、C#から呼び出した時にエラーが出ます。
Python2.7のパスを指定した時は
Can not import float32 from numpy.core

python3.4のパスを指定した時は
Unexpected token '='

現在手探り状態です。何か情報をお持ちでしたらよろしくお願いします。

会社から書き込みできないため、詳しいソース等が載せれないのですが、足りない情報などありましたら追記させていただきます。

=== 2017/2/18 追記 ===
ご指摘がありましたので、再現手順を追記します。
[環境]
・Python側
1.Python2.7系をインストール
2.setuptoolをインストール(numpyをインストールするため)
3.pip でnumpyをインストール
4.scipyはダウンロードしたものをインストール(pipでインストールできなかった)
(参考:http://qiita.com/mojaie/items/241eb7006978e6962d05)

・VS側
1.VisuauStudio (私の環境では2015 Express)にNugetからIronPythonとIronPython Stdlibをインストールする。
2.Python Tool Visual Studioをダウンロードし、インストール
(参考:http://ironpython.net/)
3.C#のプロジェクトを作成後、同ソリューションにPythonのプロジェクトを追加する
4.Pythonプロジェクト下に、Python環境からnumpy、scipyフォルダをコピーして配置する。
([Puthonインストールパス\lib\site-packagesにあります]
5.Pythonソースは以下を参照し、VSのPythonプロジェクトに作成
(参考:http://www2.kaiyodai.ac.jp/~kentaro/materials/new_HP/python/15fit_data3.html)
ただし、plotは必要ないため、2行目のimportと#PLOTコメント以降は削除。
6.C#からの呼び出しは以下を参照。
(参考:http://authorunknown408.blog.fc2.com/blog-entry-33.html)
7.実行時にPython側のimport関連のエラーが出たため上記6のURLにある、importでPythonのパスを追記しています。
※最初の質問でPythonのパスを指定したと書いたのは、このimportに書くパスのことです。

以上が、私の試している手順です。
またご不明点などありましたらご指摘ください。

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

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

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

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

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

Tak1wa

2017/02/17 15:45

詳しくなくて良いので、誰でも再現できる最小限の再現手順を掲載できますか
say5140

2017/02/17 22:59

Tak1waさん、ご指摘ありがとうございます。追記しました。
shimizukawa

2017/02/20 23:40

ソースコードを掲載してください。また、Py2, Py3の話が別の問題のように見えるので、話が混ざらないようにどちらか1つの質問にしたほうがよいでしょう
guest

回答2

0

一旦終了されていて回避策が見つかっているようですのでおせっかいかもしれませんが、私も同じ問題に直面したことがあったので。
もしかして普通のPython(つまりCPython)用のnumpy,scipyを呼び出そうとしているのではないでしょうか?IronPythonは.NETで実装されたPythonなので、CPythonで書かれたモジュールライブラリを直接読み込むことはできません。IronPythonで実装されたnumpy,scipyも存在するみたいですが、scipyは32bit版しかないそうです。

投稿2017/06/22 07:29

SATSUKI.

総合スコア21

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

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

say5140

2017/06/22 10:17

SATSUKIさん、ありがとうございます。私もライブラリの参照先が怪しいと思っていたのですが、結局解決方法がわからずでした。 現在は回避策で開発中です。
guest

0

自己解決

最近この件に関して調査が滞っていて、ネットで探しても情報が少なく解決に至っておりませんので一旦終了させて頂きます。

回避策として、IronPythonは使用せず、Proccessクラスを使用してPython.exeを通じて実行する方法で得たい結果は取得できました。

投稿2017/03/06 12:25

say5140

総合スコア12

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問