#python #visual-studio-code #anaconda #matplotlib-basemap
#python #visual-studio-code #anaconda #matplotlib-базовая карта
Вопрос:
Я запускаю пример сценария для базовой карты python. Вот сценарий:
import sys
print("Running on = ", sys.executable)
from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
# setup lambert azimuthal equal area basemap.
# lat_ts is latitude of true scale.
# lon_0,lat_0 is central point.
m = Basemap(width=12000000,height=8000000,
resolution='l',projection='laea',
lat_ts=50,lat_0=50,lon_0=-107.)
m.drawcoastlines()
m.fillcontinents(color='coral',lake_color='aqua')
# draw parallels and meridians.
m.drawparallels(np.arange(-80.,81.,20.))
m.drawmeridians(np.arange(-180.,181.,20.))
m.drawmapboundary(fill_color='aqua')
# draw tissot's indicatrix to show distortion.
ax = plt.gca()
for y in np.linspace(m.ymax/20,19*m.ymax/20,9):
for x in np.linspace(m.xmax/20,19*m.xmax/20,12):
lon, lat = m(x,y,inverse=True)
poly = m.tissot(lon,lat,1.5,100,
facecolor='green',zorder=10,alpha=0.5)
plt.title("Lambert Azimuthal Equal Area Projection")
plt.show()
Я запускаю его, вызывая его из командной строки Anaconda в среде «базовая карта», и он работает:
Теперь я запускаю тот же скрипт из Visual Studio Code в той же среде, и ему не удается импортировать:
В чем может быть проблема? Что-нибудь еще, что я должен проверить, кроме среды?
Комментарии:
1. Какую версию модуля «pyproj» вы используете? Согласно предоставленному вами коду, я могу запустить его в VSCode, а версия «pyproj», которую я использовал, — 1.9.6.
2. Версия в
pip list
команде: pyproj==2.6.1.post13. Я попытался использовать «pyproj == 2.6.1.post1», он также может запускаться. Какие номера версий модулей «matplotlib» и «basemap» вы используете? Номер версии модуля «matplotlib», который я использую, равен 3.1.0, а базовая карта — 1.2.0. Кроме того, рекомендуется попробовать переустановить модуль «базовая карта» в текущей среде conda.
4. Я попытался создать новую среду с вашей конфигурацией, теперь ошибка импорта другая:
File "C:...mpl_toolkitsbasemap__init__.py", line 48, in <module> import _geoslib ImportError: DLL load failed: The specified module could not be found.
. Это в VS Code. Когда я пытаюсь запустить его, вызвав из командной строки Anaconda, он снова работает. Я не понимаю, что не так с моей Visual Studio…
Ответ №1:
Согласно предоставленной вами информации о консоли, причина в том, что консоль терминала не входит в среду conda. Вы можете использовать следующие два метода для ее решения:
-
Используйте другие консоли терминала в VSCode. «
Ctrl Shift p
«,»Terminal:Select Default Shell
«, «Command Prompt
«, откройте новую консоль терминала, она автоматически активируется и войдет в среду conda. -
Используйте команду «
conda init powershell
» на консоли для инициализации conda.Снова откройте консоль powershell (сочетание клавиш: Ctrl Shift `), powershell автоматически активируется и переходит в среду conda.
Примечание:
-
когда я использую метод 2, консоль powershell выдает другую ошибку: «
pyproj_datadir = os.environ['PROJ_LIB'] KeyError:'PROJ_LIB'
«. Способ, которым я это исправляю: используйте «conda install -c conda-forge proj4
» для установки proj4. -
При возникновении
from matplotlib.cbook import dedent ImportError: cannot import name 'dedent' from 'matplotlib.cbook' (D:Users...Anaconda3envsbasemaplibsite-packagesmatplotlibcbook__init__.py)
что означает, что « matplotlib
«версия несовместима, пожалуйста, используйте « conda install matplotlib==3.1
» для установки версии 3.1.
Ссылка: conda в powershell и KeyError ‘PROJ_LIB.
Комментарии:
1. Я должен был сделать также
conda install -c conda-forge matplotlib-base==3.1
. Спасибо, командная строка в VS Code решила эту проблему.