Невозможно импортировать базовый модуль Python
У меня возникли проблемы с импортом базового модуля mpl_toolkits в python. Вот что я получаю, когда запускаю test.py script из каталога модуля:
/usr/lib/python2.7/dist-packages/mpl_toolkits/basemap$ python test.py
Traceback (most recent call last):
File "test.py", line 1, in <module>
from mpl_toolkits.basemap import Basemap, shiftgrid
ImportError: No module named basemap
Я не могу получить его, так как sys.path
дает список путей, в которых я уверен, что каталог "baseemap" находится в каталоге "mpl_toolkits". Для import mpl_toolkits
нет проблем. Вот что я попробовал, чтобы вручную добавить путь и результат:
>>> import sys
>>> sys.path.append('/usr/lib/python2.7/dist-packages/mpl_toolkits/basemap')
>>> import basemap
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "basemap/__init__.py", line 30, in <module>
from mpl_toolkits.basemap import pyproj
ImportError: No module named basemap
Я попытался удалить переустановку базовой карты из источника (тщательно следуя этим инструкциям), из apt-get, из конды, но это не ничего изменить: я не могу импортировать базовую карту.
Спасибо за помощь
Ответы
Ответ 1
Я столкнулся с этой проблемой, и я смог ее решить, используя anaconda
После активации моего профиля
source activate MyProfileName
conda install basemap
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
# setup Lambert Conformal basemap.
# set resolution=None to skip processing of boundary datasets.
m = Basemap(width=12000000,height=9000000,projection='lcc',
resolution=None,lat_1=45.,lat_2=55,lat_0=50,lon_0=-107.)
m.bluemarble()
plt.show()
![BlueMarble формат базовой карты]()
Ответ 2
Я был в той же ситуации, пока минута назад, установив ее, это сделало трюк:
sudo apt-get install libgeos-3.5.0
sudo apt-get install libgeos-dev
sudo pip install https://github.com/matplotlib/basemap/archive/master.zip
Ответ 3
У меня была такая же проблема; попытка получить доступ к базовой карте с помощью sys приведет к этой ошибке. Но это сработало для меня:
import mpl_toolkits
mpl_toolkits.__path__.append('/usr/lib/python2.7/dist-packages/mpl_toolkits/')
from mpl_toolkits.basemap import Basemap
Ответ 4
Мне удалось настроить базовую карту, выполнив следующие действия. Обратите внимание, что я установил --user
.
- Создайте поверхностный клон базовой
git clone --depth 1 [email protected]:matplotlib/basemap.git
(git clone --depth 1 [email protected]:matplotlib/basemap.git
) или извлеките архив текущей версии. - Установите все нужные библиотеки (на Ubuntu,
libgeos-dev
, libproj-dev
, libgeos++-dev
, proj-data
, proj-bin
, libgeos-c1v5
, libgeos
, libproj12
, я думаю). -
pip install --user pyproj matplotlib geos
(на самом деле не уверен, geos
ли geos
).
Теперь здесь, где мне пришлось немного импровизировать. Когда я устанавливаю базовую карту с помощью python setup.py install
, она создает новый каталог egg среди моих пакетов Python. Этот каталог содержит подкаталог mpl_toolkits
который дублирует отдельный каталог mpl_toolkits
установленный matplotlib.
Так что вместо этого я сделал
python setup.py build_ext --inplace
cp -a lib/mpl_toolkits/basemap /my/python/packages/dir/mpl_toolkits/basemap
cp lib/_geoslib.so /my/python/packages/dir
Теперь я могу запускать примеры, такие как simpletest.py
.
Ответ 5
Я последовал за этим ответом:
fooobar.com/questions/1259142/...
Хотя я могу неправильно установить mpl_toolkits (или не знаю), в моем случае я обнаружил, что базовая карта расположена в таких пимодулях:
mpl_toolkits.__path__.append('/usr/lib/pymodules/python2.7/mpl_toolkits/')
from mpl_toolkits.basemap import Basemap
Так что это работает для меня на Ubuntu 14.04 LTS.
Ответ 6
Загрузите его отсюда и установите вручную. Убедитесь, что вы загружаете правильную версию (то есть, если вы Python3.6, то скачайте basemap ‑ 1.2.0 ‑ cp36 ‑ cp36m ‑ win_amd64.whl)
Ссылка: fooobar.com/questions/995448/...
Ответ 7
Вам также может потребоваться установка setuptools. Это позволяет mpl_toolkits быть пакетом пространства имен, который может охватывать несколько каталогов (т.е. Как matplotlib, так и baseemap).