У меня возникли проблемы с установкой libcloud на ubuntu с помощью python 2.7.2
Я установил libcloud с веб-сайта apache libcloud http://libcloud.apache.org/downloads.html. Файл apache-libcloud-0.9.1.zip.
Когда я следую примерам, я могу импортировать libcloud, но при попытке импортировать библиотеки из примеров я получаю следующую ошибку:
import sys
import os
import libcloud
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
Traceback (most recent call last):
File "/home/ubuntu/workspace/rtbopsConfig/test_code/libcloud.py", line 3, in <module>
import libcloud
File "/home/ubuntu/workspace/rtbopsConfig/test_code/libcloud.py", line 4, in <module>
from libcloud.compute.types import Provider
ImportError: No module named compute.types
У меня была установка предыдущей версии, но когда я узнал, что пакет устарел, я установил его из источника. Я использовал средство удаления установщика пакетов.
Итак... как это решить? Пакеты находятся в /usr/local/lib/python2.7/dist-packages/libcloud/
Используйте pip для установки libcloud
pip install apache-libcloud
Что вы назвали своим файлом python, с которым у вас была эта проблема? если вы назвали его libcloud.py, это может привести к этой точной проблеме.
Чтобы исправить это, просто назовите файл другим и попробуйте запустить его снова. Также убедитесь, что вы удаляете и файл libcloud.pyc в том же каталоге.
Что происходит, так это то, что python считает, что ваш файл libcloud.py - это libcloud, который вы пытаетесь импортировать, что явно не работает, поскольку вы не определяете вычисление и т.д.
Поскольку файл libcloud/compute/types.py
существует в упомянутом вами архиве, похоже, проблема связана с установленной версией. (Импорт действительно работает для меня.)
Вы можете попытаться удалить и переустановить его (убедитесь, что вы сначала удалите все связанные пакеты, установленные с помощью apt-get/aptitude).
$ sudo pip uninstall libcloud
$ cd /path/to/downloaded/archive
$ sudo python setup.py install
Если вы хотите отладить проблему, вы можете получить версию библиотеки, используя
>>> import libcloud
>>> print libcloud.__version__
0.9.1