最近,我开始使用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
没有名为“Quantum”的模块
文件“C:\ Users \ Username \ Q#projects \ HostProtocol.py”,第3行,在
从Quantum.BB84导入Run_BB84Protocol

这也适用于我以前的所有项目。这非常令人沮丧,我不知道是什么原因引起的,因为它以前运行良好。绝对欢迎任何帮助!

最佳答案

如果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.

07-25 23:45