Python / Q#:找不到模块错误,.qs文件位于同一目录中

时间:2020-04-13 09:15:16

标签: python module compiler-errors q#

最近,我开始使用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

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

1 个答案:

答案 0 :(得分:1)

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