Ошибка импорта: нет модуля с именем watson_developer_cloud - PullRequest
0 голосов
/ 17 декабря 2018
## Packages
import sys
import os
import glob
import json
import matplotlib.pyplot as plt
import watson_developer_cloud

## Cloud service credential connection
discovery_creds = helper.fetch_credentials('discovery')

discovery = watson_developer_cloud.DiscoveryV1(
                        version='2018-08-01',
                        url=discovery_creds['url'],
                        iam_apikey=discovery_creds['apikey'])

## Environment initialization
env, env_id = helper.fetch_object(
    discovery, "environment", "Compugin",
    create=True, create_args=dict(
        description="Compugin 1.0 -- Question/Answering"
    ))

# Lists existing configurations for the service instance and store default configuration id
configurations = discovery.list_configurations(environment_id=env_id).get_result()
cfg_id =  configurations['configurations'][0]['configuration_id']
print(json.dumps(configurations, indent=2))

# List default configuration details
config = discovery.get_configuration(environment_id=env_id, configuration_id=cfg_id).get_result()
print(json.dumps(config, indent=2))

# Test configuration on some sample text
data_dir = "data"
filename = os.path.join(data_dir, "sample.html")
with open(filename, "r") as f:
    res = discovery.test_configuration_in_environment(environment_id=env_id, configuration_id=cfg_id, file=f).get_result()
print(json.dumps(res, indent=2))

При попытке запустить приведенный выше код Python я получаю эту ошибку:

Traceback (последний вызов был последним): файл "compugin.py", строка 7, в импорте watson_developer_cloud ImportError: Нетмодуль с именем watson_developer_cloud

Я установил пакет watson_developer_cloud с помощью pip, не уверен, что я делаю неправильно.

1 Ответ

0 голосов
/ 18 декабря 2018

Когда мы устанавливаем пакеты с помощью pip, существует два мира - Глобальные пакеты сайтов и пакеты virtualenv

Создание виртуальных сред Python «Виртуальные среды»разрешить установку пакетов Python в изолированном месте для определенного приложения, а не в глобальном масштабе.

Представьте, что у вас есть приложение, которому требуется версия 1 LibFoo, но другое приложение требует версии 2. Как вы можете использоватьоба эти приложения?Если вы установите все в /usr/lib/python3.6/site-packages (или где-либо в другом месте вашей платформы), то легко оказаться в ситуации, когда вы непреднамеренно обновите приложение, которое не должно быть обновлено.

Или, в общем, что если вы хотите установить приложение и оставить его?Если приложение работает, любое изменение в его библиотеках или версиях этих библиотек может нарушить работу приложения.

Кроме того, что, если вы не можете установить пакеты в глобальный каталог site-packages?Например, на общем хосте.

Во всех этих случаях вам могут помочь виртуальные среды.У них есть свои собственные каталоги установки, и они не делят библиотеки с другими виртуальными средами.

В настоящее время есть два общих инструмента для создания виртуальных сред Python:

venv по умолчанию доступен в Python3.3 и выше, и устанавливает pip и setuptools в созданные виртуальные среды в Python 3.4 и выше.virtualenv должен быть установлен отдельно, но поддерживает Python 2.7+ и Python 3.3+, а pip, setuptools и wheel всегда устанавливаются в созданные виртуальные среды по умолчанию (независимо от версии Python).

Read установка пакетов

Чтобы узнать о различиях между глобальными пакетами сайта и пакетами virtualenv, см. установка pip в глобальных пакетах сайта вместо virtualenv

...