量子编程入门第一篇环境搭建dotnet-sdk+Microsoft.Quantum.IQSharp+python3.6+qsharp

2023-05-16

    量子编程已经提上日程,微软提供了quantum开发工具包 Microsoft Quantum Development Kit简称QDK,在visual studio 2019环境下,可以安装quantum工具,本人试过在visual studio 2017下无法安装这个工具,只能按照微软提供的简易安装环境。环境要求python3.6、dotnet-sdk-2.1及以上。如下图所示:

    

    这里我的python环境是3.7.4,.Net Core SDK版本是2.2.108。这里主要是需要安装dotnet环境。我选择的是压缩包的sdk。下载地址是:https://dotnet.microsoft.com/download/dotnet-core/2.2。选择一个合适的版本即可。

    我的dotnet-sdk-2.2.108-win-x64.zip解压到一个目录,然后将该目录加入环境变量就可以了。验证dotnet版本信息:

    

    接着就可以进行dotnet tool install -g Microsoft.Quantum.IQSharp安装了。 安装过程会下载dotnet-iqsharp.exe到系统用户目录下的.dotnet\tools目录下。如下所示:

       

    接着,我们需要在命令行下进入该目录,然后运行dotnet iqsharp install,如果不到该目录下运行此命令,会报错,找不到dotnet-iqsharp.exe文件。安装成功的情况:

C:\Users\Administrator>dotnet iqsharp install
[InstallKernelSpec] Installed kernelspec iqsharp in C:\ProgramData\jupyter\kernels\iqsharp

    windows环境准备好了,接下来需要pip安装qsharp依赖。pip install qsharp,这个依赖需要依赖pywin32等等,安装完成,我们查看安装的库。

    

    以上到这里,环境就全部准备好了,我们可以编写两个文件,一个是q#编写的Operation.qs,一个是hello_world.py。内容如下所示:

    Operation.qs

namespace HelloWorld
{
        open Microsoft.Quantum.Intrinsic;
        open Microsoft.Quantum.Canon;

        operation SayHello() : Result {
                Message("Hello from Quantum!");
                return Zero;
        }
}

    hello_world.py 

import qsharp
from HelloWorld import SayHello
SayHello.simulate()

    直接运行python hello_world.py,打印了Hello from Quantum!表示成功了。 

    

    第一次运行python hello_world.py的时候,如果报错,基本就是win32api的问题,后面有介绍如何解决。如果不报错,那么第一次运行会比较慢,按照提示,好像需要准备Q#环境。再次执行,就很快打印结果了。 

    整个搭建过程中,遇到的问题如下:

    1、dotnet运行dotnet tool install -g Microsoft.Quantum.IQSharp正常,但是运行dotnet qsharp install的时候,报错,找不到dotnet-iqsharp.exe可执行程序,最后到~\.dotnet\tools目录下运行即可。

    2、通过pip install qsharp安装qsharp库之后,运行程序,报错提示找不到win32api模块,其实已经安装了,有可能是我们的sys.path中没有包含win32相关的路径。因为我的python不是通过msi的方式安装,直接使用的二进制压缩包安装,很多环境变量需要手动增加到sys.path中,这里给出我的sys.path的配置。找到python安装目录下的python37._pth文件,加入以下路径:

.\Lib\site-packages\pywin32_system32\
.\Lib\site-packages\win32\
.\Lib\site-packages\win32\lib
.\Lib\site-packages\pythonwin

    最后可以在python交互式环境中验证win32api是否已经可以通过import导入了。

C:\Users\Administrator\Desktop\test>python
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
>>> import win32api
>>>
>>>

    没有报错,则表示sys.path已经配置正确了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

量子编程入门第一篇环境搭建dotnet-sdk+Microsoft.Quantum.IQSharp+python3.6+qsharp 的相关文章

随机推荐

  • flume大数据框架数据采集系统

    flume是cloudera开源的数据采集系统 xff0c 现在是apache基金会下的子项目 xff0c 他是hadoop生态系统的日志采集系统 xff0c 用途广泛 xff0c 可以将日志 网络数据 kafka消息收集并存储在大数据hd
  • flume日志收集系统常见配置

    前面介绍了flume入门实例 xff0c 介绍了配置netcat信源 xff0c 以及memory信道 xff0c logger信宿 xff0c 其实flume常见的信源信道信宿有很多 xff0c 这里介绍flume常用信源的三种方式 xf
  • flume自定义拦截器实现定制收集日志需求

    flume默认提供了timestamp host static regex等几种类型的拦截器 xff0c timestamp host static等拦截器 xff0c 其实就是在消息头中增加了时间戳 xff0c 主机名 xff0c 键值对
  • Eclipse开发mapreduce程序环境搭建

    Eclipse作为一个常用的java IDE xff0c 其使用程度虽然比不上idea那么强大 xff0c 但是对于习惯使用eclipse开发的人来说 xff0c 也不失为一个可以选择的IDE 对于喜欢eclipse开发的人来说 xff0c
  • hdfs常见操作java示例

    我们学习hadoop xff0c 最常见的编程是编写mapreduce程序 xff0c 但是 xff0c 有时候我们也会利用java程序做一些常见的hdfs操作 比如删除一个目录 xff0c 新建一个文件 xff0c 从本地上传一个文件到h
  • MapReduce编程开发之数据去重

    MapReduce就是一个利用分而治之的思想做计算的框架 xff0c 所谓分 xff0c 就是将数据打散 xff0c 分成可以计算的小份 xff0c 治就是将数据合并 xff0c 相同键的数据合并成一个集合 MapReduce并不能解决所有
  • MapReduce编程开发之求平均成绩

    MapReduce计算平均成绩是一个常见的算法 xff0c 本省思路很简单 xff0c 就是将每个人的成绩汇总 xff0c 然后做除法 xff0c 在map阶段 xff0c 是直接将姓名做key 分数作为value输出 在shuffle阶段
  • MapReduce编程开发之数据排序

    MapReduce的数据排序 xff0c 其实没有很复杂的实现 xff0c 默认在shuffle阶段 xff0c MapReduce就帮我们将数据排好序了 xff0c 我们在Map和Reduce阶段 xff0c 无需做额外的操作 MapRe
  • MapReduce编程开发之倒排索引

    倒排索引是词频统计的一个变种 xff0c 其实也是做一个词频统计 xff0c 不过这个词频统计需要加上文件的名称 倒排索引被广泛用来做全文检索 倒排索引最终的结果是一个单词在文件中出现的次数的集合 xff0c 以下面的数据为例 xff1a
  • ROS2学习笔记(五)-- ROS2命令行操作常用指令总结(一)

    简介 xff1a 在前面的章节中 xff0c 我们先简单学习了ROS2的话题发布和订阅 xff0c 两种操作都是通过python代码实现的 xff0c 而在实际应用过程中 xff0c 我们会经常用到命令行操作来辅助调试 xff0c 更进一步
  • 实例演示ElasticSearch索引查询term,match,match_phase,query_string之间的区别

    通常在面试elasticsearch中 xff0c 面试官会问一个关于查询的问题 xff0c 就是term查询和match查询有什么区别 xff1f 如果你对这两个查询不清楚 xff0c 面试官会认为你没有用过elasticsearch x
  • Elasticsearch使用update_by_query

    elasticsearch中有一个方法是批量修改 xff0c 就是先查询出需要修改的索引记录 xff0c 然后批量修改 这个本来没什么 xff0c 但是使用过的都知道 xff0c 用java来调用这个方法很别扭 一般来说 xff0c 我们使
  • C++中实现字符串分隔split方法

    C 43 43 中 xff0c 除了没有直接的求数组长度的方法外 xff0c 也没有直接对字符串分隔的方法 xff0c 需要我们自己来实现 xff0c 下面结合字符串分隔的问题 xff0c 做一个面试题 xff0c 面试题是这样的 xff0
  • c++编程实现简单mapreduce程序

    hadoop提供了java版本的mapreduce编程API xff0c 我们需要自定义编写mapper和reducer xff0c 分别继承Mapper和Reducer xff0c 然后重写map和reduce方法 同时需要在main方法
  • windows下安装MongoDB压缩版

    MongoDB在windows上一般提供msi的安装方式 xff0c 这种安装方式相对简单 xff0c 界面安装 xff0c 这里介绍解压缩版本的安装 xff0c 我们需要下载的是zip包 xff0c 然后解压 xff0c 这里下载之后 x
  • python3安装以及安装pip之后出现的问题

    python3在windows10上的安装 xff0c 为了省事 xff0c 直接下载的是python 3 7 4 embed adm64 zip免安装版本 xff0c 下载解压 xff0c 然后将python目录加入环境变量的path中
  • eclipse安装pydev插件开发python程序

    做Java开发的 xff0c 想学习python xff0c 可以不用安装别的pycharm IDE xff0c 我们直接通过在eclipse中安装一个python插件pydev即可 xff0c 前提是你的机器上已经安装了python xf
  • docker私有镜像服务搭建

    docker容器技术已经在部署服务上使用的非常普遍 xff0c 主要是它的隔离性以及快速启动的特性 xff0c 一般启动一个容器 xff0c 如果镜像不存在会先去dockerhub仓库下载 xff0c 然后存储在本地 xff0c 后续可以继
  • vs2017开发第一个desktop应用程序

    desktop应用程序也叫窗口程序 xff0c 我们平时在电脑上安装的APP xff0c 都是桌面程序 xff0c 比如QQ xff0c 各种播放器 xff0c 包括浏览器 桌面程序最主要的特点 xff0c 就是点击运行之后 xff0c 会
  • 量子编程入门第一篇环境搭建dotnet-sdk+Microsoft.Quantum.IQSharp+python3.6+qsharp

    量子编程已经提上日程 xff0c 微软提供了quantum开发工具包 Microsoft Quantum Development Kit简称QDK xff0c 在visual studio 2019环境下 xff0c 可以安装quantum