最近,我开始使用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
这也适用于我以前的所有项目。这非常令人沮丧,我不知道是什么原因引起的,因为它以前运行良好。任何帮助都绝对欢迎!
答案 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.