#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