libQasm Python包
libqasm的Python项目详细描述
libQASM:解析cQASM v1.0文件的库
依赖关系
- 弹性(>;2.6)
- 野牛(>;3.0)
- cmake(>2.8)
- GCC和G++的C++ 11标准
- MinGW(用于Windows版本)
- doctest(作为git子模块)
- Python3(在pythonv3.6上测试)
- 痛饮
- Linux:3.0.12版
- Windows:4.0.0
使用MSVC(Visual C++)的EH3> Windows环境
libqasm应该与为building OpenQL from sources on Windows描述的环境一起工作。如果这个链接断了,下面是一个总结。在
下载并安装以下工具。当提示您是否要将它们添加到路径时,请执行此操作。在
- git
- MSVC 2015更新3或更高版本
- Python 3.5+(确保获得64位版本!)在
- cmake 3.15.3
下载以下工具的摘录,然后手动将包含可执行文件的目录添加到您的路径中:
您还应该了解Python的安装位置和安装方式,并使用PYTHON_INCLUDE
和{include
目录和pythonXX.dll
文件。对我来说,这些是:
PYTHON_INCLUDE
->;C:\Users\IEUser\AppData\Local\Programs\Python\Python38\include
PYTHON_LIB
->;C:\Users\IEUser\AppData\Local\Programs\Python\Python38\python38.dll
接下来,在提升的Powershell(即“以管理员身份运行”)中运行:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Install-Module -AllowClobber -Name Pscx -RequiredVersion 3.2.2
最后,每当您打开Powershell进行构建时,首先运行ONE,具体取决于您的MSVC版本(您可能还需要修改版本号…):
^{pr2}$组织
- cqasmv1.0的原始论文和BNF规范位于./doc目录中。但是,请注意,从那时起,语言已经发生了一定程度的变化,并且卡西姆银行从未完全符合flex/bison语法。新的、最新的文档正在进行中。在
- 目前有两个C++ API版本包含在这个存储库中,一个新的API仍然被使用,并且原始的即将被弃用的API被保持用于向后兼容的目的。新的API完全自包含在./src/cqasm目录中。旧的API是以前的样子,它的源代码位于./src/library中,其测试位于./src/tests中。在
安装/使用库
来自Python
从项目根目录安装,如下所示:
python -m pip install .
或者如果你想用康达:
conda build python/conda
conda install libqasm --use-local
您可以使用
python -m unittest discover -s src/tests -v
或者,如果您愿意,可以使用pytest
python -m pytest
现在您应该能够import libQasm
来使用原始API的绑定。新的API还没有Python绑定。在
在CMake项目中使用libqasm最简单的方法是将此存储库作为子模块克隆到存储库中,然后使用
add_subdirectory(libqasm) # or wherever your submodule is
target_link_libraries(<your target> cqasm)
target_link_libraries()
指令应该自动将libqasm新API的public include目录添加到目标的include路径中。你需要对每个目标都这样做。在
默认情况下,原始API头包括not。要启用这些,请在add_subdirectory()
指令之前添加option(LIBQASM_COMPAT "" ON)
。在
根目录中的CMakeLists.txt
文件包括安装目标:
mkdir cbuild
cd cbuild
cmake .. <directives, see below>
make -j <Number of processors>
make install
您可能需要向cmake
命令添加一个或多个指令:
-DLIBQASM_COMPAT=yes
:在新API的头上安装原始API的头。在-DBUILD_SHARED_LIBS=yes
:构建共享对象库而不是静态库(如果适用)。在-DCMAKE_INSTALL_PREFIX=<directory>
:指定库将安装到的目录,以防您想覆盖操作系统的默认值。在
测试库
Linux和MacOS
git submodule update --init --recursive
mkdir cbuild
cd cbuild
cmake .. -DLIBQASM_BUILD_TESTS=yes -DLIBQASM_COMPAT=yes
make -j <Number of processors>
make test
Windows+MinGW
与上面一样,只是我们将使用MinGW工具链。您应该首先获取mingw-w64并安装它。在
git submodule update --init --recursive
mkdir cbuild
cd cbuild
cmake -G "MinGW Makefiles" .. -DLIBQASM_BUILD_TESTS=yes -DLIBQASM_COMPAT=yes
mingw32-make.exe
mingw32-make.exe test
这将输出_libQasm.pyd
,liblexgram.dll
和一个静态库liblexgramstatic.a
Windows+MSVC
从Windows环境安装说明继续(不要忘记先运行vcvarsall.bat
):
git submodule update --init --recursive
mkdir cbuild
cd cbuild
cmake .. -DLIBQASM_BUILD_TESTS=yes -DLIBQASM_COMPAT=yes
cmake --build .
cmake --build . --target RUN_TESTS
Docker
这将在一个容器中测试库,其中包含libqasm的最低要求。在
docker build .
- 项目
标签: