vscodeでanacondaを使うとnumpyがインポートエラーになる

python

 

Visual Studio Codeでnumpyをインポートしようとしたらエラーが出てしまい、解決方法がわからず1~2日ほどを無駄にしてしまいました(笑)

原因はそれほど難しいことではなかったのですが、備忘録として記事にしておきます。

vscodeでnumpyを使おうとしたらエラーがでる

環境

  • OS:windows10
  • Anaconda3
  • エディタ:VSCode

Visual Studio CodeのターミナルからPythonのコードを実行すると、なぜかエラーがでてしまいました。

ところが、なぜかAnacondaプロンプトから実行すると、エラーは出ずにnumpyは普通に読み込める…なんで?

エラーは以下のような感じ。

Traceback (most recent call last):  File "c:\Users\user\Anaconda3\envs\research\coef.py", line 4, in <module>  import numpy as np  File "C:\Users\user\Anaconda3\envs\research\lib\site-packages\numpy\__init__.py", line 142, in <module>  from . import core  File "C:\Users\user\Anaconda3\envs\research\lib\site-packages\numpy\core\__init__.py", line 71, in <module>  raise ImportError(msg)  ImportError:    IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!    Importing the multiarray numpy extension module failed. Most  likely you are trying to import a failed build of numpy.  Here is how to proceed:  - If you're working with a numpy git repository, try `git clean -xdf`  (removes all files not under version control) and rebuild numpy.  - If you are simply trying to use the numpy version that you have installed:  your installation is broken - please reinstall numpy.  - If you have already reinstalled and that did not fix the problem, then:  1. Check that you are using the Python you expect (you're using C:\Users\user\Anaconda3\envs\research\python.exe),  and that you have no directories in your PATH or PYTHONPATH that can  interfere with the Python and numpy versions you're trying to use.  2. If (1) looks fine, you can open a new issue at  https://github.com/numpy/numpy/issues. Please include details on:  - how you installed Python  - how you installed numpy  - your operating system  - whether or not you have multiple versions of Python installed  - if you built from source, your compiler versions and ideally a build log    Note: this error has many possible causes, so please don't comment on  an existing issue about this - open a new one instead.    Original error was: DLL load failed: 指定されたモジュールが見つかりません。

いや、DLL load failedってなんなん…?

となり、このエラーを調べていくうちに泥沼にはまっていってしまったのですが・・・(笑)

解決方法:PowershellでAnacondaを使えるようにする

結局vscodeでnumpyが使えない理由は、powershellからAnacondaを使えないことが原因でした。

windows powershellとは

windows powershellとはコマンドプロンプトの強化版みたいなものです。

vscodeではデフォルトのターミナルがpowershellに設定されています。

なので、設定を何も変更していなければ、vscodeでpythonのコードを実行したときは、powershellからpythonのコードを実行しているのと同じだ、ということです。

僕もこの辺は詳しいわけではないので、説明があいまいかもしれませんが・・・

powershellでAnacondaを使えるようにする

じゃあ、どうやってpowershellからAnacondaを使えるようにするのか、といったことを簡単に書いていきます。

まずは、Anacondaプロンプトを開き、以下のようにコマンドを入力してください。

(base)C:\Users\user> conda init powershell  

Anacondaプロンプトですることは基本的にこれだけです。次はwindows powershellを管理者権限で開きます。

念のため・・・powershellはスタートメニュのところから開けますので。

powershellを開くと以下のように赤文字でエラーっぽいのが出ていると思いますが、おじけづかないでください(笑)

: このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\user\Documents\WindowsPowerShell\profile.p  s1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135  170) を参照してください。  発生場所 行:1 文字:3  + . 'C:\Users\int\Documents\WindowsPowerShell\profile.ps1'  +   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      + CategoryInfo          : セキュリティ エラー: (: ) []、PSSecurityException      + FullyQualifiedErrorId : UnauthorizedAccess

 

今からこれを解消していきます。powershellに以下のようにコマンドを入力します

PS C:\Users\user> Set-ExecutionPolicy RemoteSigned    実行ポリシーの変更  実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ  トピック (https://go.microsoft.com/fwlink/?LinkID=135170)  で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?  [Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"):

コマンドを入力すると、「実行ポリシーの変更~~~」と出てくるので、ここは迷わずYを選択します。

 

これで、powershellからAnacondaを使えるようになります。試しにAnacondaのcondaから始まるコマンドを何でもいいので実行してみてください。

問題なく使えたら、OKです。

参考サイト

この辺の操作は基本的に以下のサイトを参考にしました。

Anaconda がやっと PowerShell に公式対応した

conda activateでエラーが出る話

で、これでpowershellからanacondaが使えるようになったので、vscodeからnumpyを読みこんでもエラーがでないはずです。

コメント

タイトルとURLをコピーしました