Python / Q #: Ошибка: модуль не найден, файл .qs находится в том же каталоге. - PullRequest
0 голосов
/ 13 апреля 2020

В последнее время я начал работать с Q # и python в качестве основного языка. Я работал над проектом, и все было хорошо. Внезапно я получаю сообщение об ошибке «модуль не найден», и, похоже, я получаю его и во всех моих предыдущих проектах.

Итак, у меня есть каталог: C: \ Users \ Username \ Q # projects В этой папке У меня есть 2 файла: HostProtocol.py, который является основным файлом, и BB84.qs, который является файлом, из которого я хочу импортировать.

Файл HostProtocol.py выглядит следующим образом:

import qsharp

from Quantum.BB84 import Run_BB84Protocol
Run_BB84Protocol.simulate()

Файл BB84.qs выглядит следующим образом:

namespace Quantum.BB84 {
    open Microsoft.Quantum.Arrays;
    open Microsoft.Quantum.Measurement;
    open Microsoft.Quantum.Canon;
    open Microsoft.Quantum.Intrinsic;
    open Microsoft.Quantum.Diagnostics;
    open Microsoft.Quantum.Convert;
    open Microsoft.Quantum.Math;

function Run_BB84Protocol() Unit{... the code from the function...}
}

Когда я пытаюсь запустить HostProtocol.py, я получаю следующее сообщение об ошибке:

Исключение: ModuleNotFoundError No модуль с именем 'Quantum' File "C: \ Users \ Имя пользователя \ Q # projects \ HostProtocol.py", строка 3, из Quantum.BB84 import Run_BB84Protocol

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

1 Ответ

1 голос
/ 13 апреля 2020

Если в исходном файле Q # есть ошибки компиляции Q #, ваши операции и функции Q # будут недоступны. Проверьте вывод Python на наличие ошибок. Когда я запускаю предоставленный вами пример кода, он сообщает о синтаксической ошибке в коде Q # (перед возвращаемым типом Unit отсутствует двоеточие):

 fail: Microsoft.Quantum.IQSharp.Workspace[0]
       QS3211: Invalid return type annotation. The argument tuple needs to be followed
       by a colon and the return type of the callable.
...