ImportError: нет модуля с именем cloudant.client; "облачный" не пакет
Я использую Python 3.5 и установил пакет cloudant командой execute:
sudo -H pip3 install cloudant
Я пытаюсь связаться с базой данных Python. Согласно документации - https://console.bluemix.net/docs/services/Cloudant/getting-started.html. Этот код должен работать:
from cloudant.client import Cloudant
client = Cloudant("username", "password", url="https://user_name.cloudant.com")
client.connect()
client.disconnect()
Когда я запускаю его, я получаю сообщение об ошибке:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/tomek/Projects/stage-control/cloudant.py", line 1, in <module>
from cloudant.client import Cloudant
ImportError: No module named 'cloudant.client'; 'cloudant' is not a package
3 ответа
Я подозреваю, что ваша проблема может быть в том, что pip
используется для установки модуля не pip
что ваш питон использует:
Если я сделаю pip3 install cloudant
Я получаю ту же проблему, что и вы:
(py35) stefans-mbp:work stefan$ python
Python 3.5.3 |Anaconda 4.4.0 (x86_64)| (default, Mar 6 2017, 12:15:08)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from cloudant.client import Cloudant
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'cloudant.client'
Это из-за этого:
(py35) stefans-mbp:work stefan$ which pip
//anaconda/envs/py35/bin/pip
(py35) stefans-mbp:work stefan$ which pip3
/usr/local/bin/pip3
Неправильно pip3
был использован для установки cloudant
модуль. Чтобы исправить, убедитесь, что вы используете pip
в виртуальной среде вы используете:
(py35) stefans-mbp:work stefan$ pip install cloudant
Collecting cloudant
Using cached cloudant-2.7.0.tar.gz
Requirement already satisfied: requests<3.0.0,>=2.7.0 in
/anaconda/envs/py35/lib/python3.5/site-packages (from cloudant)
Building wheels for collected packages: cloudant
Running setup.py bdist_wheel for cloudant ... done
Stored in directory: ...
Successfully built cloudant
Installing collected packages: cloudant
Successfully installed cloudant-2.7.0
Теперь это работает:
(py35) stefans-mbp:work stefan$ python
Python 3.5.3 |Anaconda 4.4.0 (x86_64)| (default, Mar 6 2017, 12:15:08)
Type "help", "copyright", "credits" or "license" for more information.
>>> from cloudant.client import Cloudant
>>>
Вы работаете локально или в приложении на Bluemix? Должно быть что-то не так с вашей установкой, потому что код выглядит хорошо. Этот код работает для меня:
from cloudant.client import Cloudant
from cloudant.document import Document
client = Cloudant("username", "pw", url="https://username.cloudant.com")
client.connect()
thedb = client["databasename"]
for document in thedb:
print(document)
client.disconnect()
Если вы работаете в Bluemix, убедитесь, что у вас есть requirements.txt
файл для запуска импорта библиотеки. См. https://pip.readthedocs.io/en/1.1/requirements.html