web-dev-qa-db-ja.com

Power BIを使用したWindowsのAnaconda

Windows 10マシンでPythonを使用して作業しています。Anaconda環境は、次のコマンドを実行して設定できます。

c:\Users\bharat.c.rupare.> call c:\Users\bharat.c.ruparel\AppData\Local\Continuum\anaconda3\Scripts\activate.bat

これでconda環境が設定されました。ただし、Power BI内のAnacondaスタックにプレインストールされているnumpyおよびPythonを使用してpandasコードを実行しようとしています。これを実行すると、Power Power BI内からconda環境がアクティブ化されていないため、BIは数え切れないほどだと文句を言います。

Power BIがnumpy、pandasなどのpythonパッケージを検索できるようにするには、conda環境をアクティブにするために何をする必要がありますか?

6
Bharat

PowerBI 2.70を使用していますが、python 3.7をサポートしていないようです。参照: https://community.powerbi.com/t5/Desktop/Error-when-connecting- python-to-PBI/mp/593716

したがって、python 3.6を指定して新しい環境を作成し、必要なパッケージをインストールする必要がありました。

conda create --name std_env python=3.6

次に、PowerBIオプションで、Pythonホームディレクトリを環境フォルダーにポイントします。例: "C:\ Users\a12345\AppData\Local\Continuum\anaconda3\envs\env_py36"

最後に、pythonスクリプトにファイルをインポートします。私は漬物ファイルを使用していますが、pandas.read_csv()も機能します。

import dill
ep_mem_ccd_tbl_mkt = dill.load(open('Z:\\folder\\file.pkd', 'rb'))
0
NatalieL

最初の質問者が仮定したように、ここでの問題はconda環境のアクティブ化がないです。これは、次のようなアクティベーションスクリプトを実行することで実行できます。

Anaconda3\condabin\activate.bat py37

ここで、py37はPython 3.7環境です。これにより、PATHに次のフォルダーが追加されます。

Anaconda3\envs\py37  
Anaconda3\envs\py37\Library\mingw-w64\bin  
Anaconda3\envs\py37\Library\usr\bin  
Anaconda3\envs\py37\Library\bin  
Anaconda3\envs\py37\Scripts  
Anaconda3\envs\py37\bin  

Anaconda3\envs\py37は、Pythonホームディレクトリであり、Pythonスクリプトセクションもあります。あとはアクティブ化された環境からPBIDesktopを起動するのようになります。

(py37) C:\> "Program Files\Microsoft Power BI Desktop\bin\PBIDesktop.exe"

推奨どおりに仮想環境を使用していない場合は、少なくとも基本環境をアクティブにする必要があります。

2019年11月のPBIDesktopリリースでは、AnacondaからPython 3.7を実行しても問題は発生しません。

1
Peter

おそらくPower BI Desktopのメニューを使用してFile/Options and settings/Options/GLOBAL/Python scriptingに移動し、必要なPythonホームディレクトリ

Activate.batスクリプトには何かが含まれている可能性があるため、選択するディレクトリを理解するのに十分な情報が提供されていません。しかし、おそらく、スクリプトサブフォルダーを削除して、activate.batへのパスを推測します。選択するフォルダーには、ファイルpython.exeが含まれている必要があります。

1
Mike Honey

私はMike Honeyが正しいと信じており、それはその.batファイルに関係していますが、モジュールをコードにインポートすることもできます。

古いバージョンのpipを使用している場合は、これを簡単に実行できます。

import pip
pip.main(['install', 'numpy'])
pip.main(['install', 'pandas'])

import numpy as np
....

新しいバージョン(10.0以降)のpip(import pipを実行してpip.__version__)を実行している場合は、サブプロセスを使用する必要があります。

import subprocess
subprocess.check_call(["python", '-m', 'pip', 'install', 'numpy'])
subprocess.check_call(["python", '-m', 'pip', 'install', 'pandas'])

import numpy as np
....
0
SRT HellKitty