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