«Ошибка ошибки ошибки: [Ошибка ошибки 126] Указанный модуль не найден» с использованием библиотеки pvfactors

#python #module #anaconda #pvlib

#python #модуль #anaconda #pvlib

Вопрос:

Я начал использовать инструмент pvfactors на Python (который вычисляет уровень освещенности, падающий на поверхности фотоэлектрических решеток), следуя руководству по веб-сайту 1.

 import numpy as np
import matplotlib.pyplot as plt
from datetime import datetime
import pandas as pd
import warnings
warnings.filterwarnings("ignore", category=RuntimeWarning)

# Settings
'exec(%matplotlib inline)'
np.set_printoptions(precision=3, linewidth=300)

#Get timeseries inputs
df_inputs = pd.DataFrame(
    {'solar_zenith': [20., 50.],
     'solar_azimuth': [110., 250.],
     'surface_tilt': [10., 20.],
     'surface_azimuth': [90., 270.],
     'dni': [1000., 900.],
     'dhi': [50., 100.],
     'albedo': [0.2, 0.2]},
    index=[datetime(2017, 8, 31, 11), datetime(2017, 8, 31, 15)]
)

#Prepare some PV array parameters
pvarray_parameters = {
    'n_pvrows': 3,            # number of pv rows
    'pvrow_height': 1,        # height of pvrows (measured at center / torque tube)
    'pvrow_width': 1,         # width of pvrows
    'axis_azimuth': 0.,       # azimuth angle of rotation axis
    'gcr': 0.4,               # ground coverage ratio
}



    from pvfactors.engine import PVEngine
    from pvfactors.geometry import OrderedPVArray
    
    pvarray = OrderedPVArray.init_from_dict(pvarray_parameters)
    
    engine = PVEngine(pvarray)
    
    engine.fit(df_inputs.index, df_inputs.dni, df_inputs.dhi,
               df_inputs.solar_zenith, df_inputs.solar_azimuth,
               df_inputs.surface_tilt, df_inputs.surface_azimuth,
               df_inputs.albedo)
  

Однако при попытке импортировать классы я получил следующую ошибку:

 OSError: [WinError 126] The specified module could not be found
  

Все сообщение об ошибке:

 File "C:UserskarenOneDriveDocumentosDoutoradopvfactorsstarting_pvfactors.py", line 51, in from pvfactors.engine import PVEngine

File "C:Userskarenanaconda3libsite-packagespvfactorsengine.py", line 5, in from pvfactors.viewfactors import VFCalculator

File "C:Userskarenanaconda3libsite-packagespvfactorsviewfactors_init_.py", line 3, in from pvfactors.viewfactors.calculator import VFCalculator

File "C:Userskarenanaconda3libsite-packagespvfactorsviewfactorscalculator.py", line 4, in from pvfactors.viewfactors.vfmethods import VFTsMethods

File "C:Userskarenanaconda3libsite-packagespvfactorsviewfactorsvfmethods.py", line 4, in from pvfactors.geometry.timeseries import TsLineCoords, TsPointCoords

File "C:Userskarenanaconda3libsite-packagespvfactorsgeometry_init_.py", line 3, in from pvfactors.geometry.pvarray import OrderedPVArray

File "C:Userskarenanaconda3libsite-packagespvfactorsgeometrypvarray.py", line 6, in from pvfactors.geometry.base import 

File "C:Userskarenanaconda3libsite-packagespvfactorsgeometrybase.py", line 9, in from pvfactors.geometry.utils import 

File "C:Userskarenanaconda3libsite-packagespvfactorsgeometryutils.py", line 6, in from shapely.geometry import 

File "C:Userskarenanaconda3libsite-packagesshapelygeometry_init_.py", line 4, in from .base import CAP_STYLE, JOIN_STYLE

File "C:Userskarenanaconda3libsite-packagesshapelygeometrybase.py", line 19, in from shapely.coords import CoordinateSequence

File "C:Userskarenanaconda3libsite-packagesshapelycoords.py", line 8, in from shapely.geos import lgeos

File "C:Userskarenanaconda3libsite-packagesshapelygeos.py", line 154, in _lgeos = CDLL(os.path.join(sys.prefix, 'Library', 'bin', 'geos_c.dll'))

File "C:Userskarenanaconda3libctypes_init_.py", line 364, in init self._handle = _dlopen(self._name, mode)

OSError: [WinError 126] The specified module could not be found
  

Может кто-нибудь, пожалуйста, помочь мне решить эту ошибку?

Комментарии:

1. Вы убедились, что эти пакеты существуют в вашей папке anaconda navigator / project?

2. Да, я убедился, что все модули и зависимости установлены на моем ПК. У меня была эта ошибка при использовании Spyder, но при использовании Jupyter у меня не было проблем. Тем не менее, я все равно хотел бы устранить ошибку.

3. Установлен ли spyder в той же среде conda?

Ответ №1:

со 2-й по последнюю строку:

 anaconda3libsite-packagesshapelygeos.py", line 154, in _lgeos = CDLL(os.path.join(sys.prefix, 'Library', 'bin', 'geos_c.dll'))
  

показывает, что ваш python не может найти библиотеку GEOS, которую использует Shapely. Shapely — это зависимость в pvfactors. Однако, похоже, в вашей среде anaconda установлен Shapely, поэтому что-то не так либо с anaconda, либо с вашей средой conda. Решение для этого почти всегда заключается в создании новой среды и ее активации. Частично проблема заключается в том, что pvfactors распространяется только в PyPI и не имеет пакета conda forge или anaconda, поэтому вам придется устанавливать требования из Anaconda вручную. К счастью, Shapely находится на conda forge

Попробуйте это в приглашении anaconda (введите команды после C:Userskaren> ):

 (base) C:Userskaren> conda create -n myenv
(base) C:Userskaren> activate myenv
(myenv) C:Userskaren> conda config --env --add channels conda-forge
(myenv) C:Userskaren> conda install python pvlib-python shapely matplotlib future six
(myenv) C:Userskaren> pip install --no-deps pvfactors
(myenv) C:Userskaren> conda install <other stuff like ipython Jupyter spyder etc>
  

Удачи. Я бы рекомендовал создать проблему в pvfactors и попросить их добавить пакет conda forge.

PS: смотрите https://docs.conda.io/projects/conda/en/latest/commands/config.html PPS: смотрите https://pip.pypa.io/en/stable/reference/pip_install/#install-no-deps