DistributionNotFoundエラーが出るスクリプトと出ないスクリプトがあります。
Pythonでベイジアンモデリングをしているのですが、
同じ仮想環境を使っているにも関わらず、
PyMCのimport時にエラーが出るスクリプトと出ないスクリプトがあります。
原因がさっぱりわからないため、なにか原因になりそうな要因があれば教えていただきたいです。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "<string>", line 1, in <module> File "C:\Users\okayan\AppData\Local\Programs\Python\Python37\lib\multiprocessing\spawn.py", line 105, in spawn_main exitcode = _main(fd) File "C:\Users\okayan\AppData\Local\Programs\Python\Python37\lib\multiprocessing\spawn.py", line 114, in _main prepare(preparation_data) File "C:\Users\okayan\AppData\Local\Programs\Python\Python37\lib\multiprocessing\spawn.py", line 225, in prepare _fixup_main_from_path(data['init_main_from_path']) File "C:\Users\okayan\AppData\Local\Programs\Python\Python37\lib\multiprocessing\spawn.py", line 277, in _fixup_main_from_path run_name="__mp_main__") File "C:\Users\okayan\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 263, in run_path pkg_name=pkg_name, script_name=fname) File "C:\Users\okayan\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 96, in _run_module_code mod_name, mod_spec, pkg_name, script_name) File "C:\Users\okayan\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "C:\work_folder\01.Python\99_test\04_test_script_37\test_mcmc.py", line 17, in <module> import pymc3 as pm File "C:\work_folder\01.Python\_env\venv_ML37\lib\site-packages\pymc3\__init__.py", line 11, in <module> from .stats import * File "C:\work_folder\01.Python\_env\venv_ML37\lib\site-packages\pymc3\stats.py", line 22, in <module> if pkg_resources.get_distribution('scipy').version < '1.0.0': File "C:\Users\okayan\AppData\Local\Programs\Python\Python37\lib\site-packages\pkg_resources\__init__.py", line 481, in get_distribution dist = get_provider(dist) File "C:\Users\okayan\AppData\Local\Programs\Python\Python37\lib\site-packages\pkg_resources\__init__.py", line 357, in get_provider return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0] File "C:\Users\okayan\AppData\Local\Programs\Python\Python37\lib\site-packages\pkg_resources\__init__.py", line 900, in require needed = self.resolve(parse_requirements(requirements)) File "C:\Users\okayan\AppData\Local\Programs\Python\Python37\lib\site-packages\pkg_resources\__init__.py", line 786, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'scipy' distribution was not found and is required by the application
該当のソースコード
Python
1# errorなし 2import numpy as np 3import pandas as pd 4import matplotlib.pyplot as plt 5import seaborn 6from sklearn.model_selection import train_test_split 7from sklearn.linear_model import LinearRegression 8import pymc3 as pm 9 10# errorあり 11import os 12import numpy as np 13import pandas as pd 14import matplotlib.pyplot as plt 15import seaborn as sns 16from sklearn.linear_model import LinearRegression 17from sklearn.linear_model import Ridge 18from sklearn.model_selection import GridSearchCV 19from sklearn.ensemble import RandomForestRegressor 20from sklearn.model_selection import train_test_split 21from sklearn import tree 22from sklearn.externals.six import StringIO 23import pydotplus 24import warnings 25import script.fcn_error as err # original script 26import pymc3 as pm
試したこと
- 環境変数の確認(別プロジェクト時)
⇒結果は変わらず。環境変数もプロジェクト間で差異はなく、下の作業で関係がないことは確認。
- 上記インポートをしている2種類のスクリプトを同じプロジェクトで動かしてみた。
(最初のエラー出現時は別プロジェクトで同じ仮想環境を使用していた)
⇒結果は変わらず。
- 各パッケージのupgrade
⇒効果は変わらず。 - pymc3/stats.pyの'pkg_resources.get_distribution('scipy').version'を自分のscipyにする。
⇒とりあえず動かせるようにはなった。だが、根本原因はまだわかっていない。
補足情報(FW/ツールのバージョンなど)
インタープリター/パッケージ
python 3.7.3
PyMC3 3.7
scipy 1.3.0
IDE
pycharm 2018.3
可能であればエラーは全体を示してください(Tracebackから)
あなたの回答
tips
プレビュー