安装指南
系统需求
TODO需要潘岩松增加相关内容
下载源代码
使用如下命令下载源代码
git clone http://62.234.201.16/Eirrac/Eden.git
LINUX系统下编译及安装
创建Conda虚拟环境
创建anaconda虚拟环境并安装python3.8和boost
conda create -n eden python=3.8 boost=1.73
然后在~/.bashrc
中写入环境变量
export EDEN=[path to your anaconda root]/envs/eden
激活环境
conda activate eden
环境后端cpp代码编译
在下载好的代码根目录Eden下,执行如下命令
mkdir build
cmake .. -DCMAKE_BUILD_TYPE=Release && make -j
编译完成后,build
目录下生成可执行文件eden
、test
以及动态链接库文件eden_cpp.so
、eden_py.so
。
若不添加CMAKE_BUILD_TYPE选项,编译版本为Debug版本。
环境的python接口安装
在虚拟环境中以开发方式安装python库eden:
conda activate eden
pip install -e python/
运行[path to Eden root]/main.py
,如果能够不报错,则说明安装正常。
Windows(MSVC)系统下编译与安装
Windows(MSVC)下目前编译相对比较繁琐,需要手动添加项目。非开发人员建议不要手动编译,直接下载提供好的动态链接库和python扩展文件可以满足一般使用需求。
下面的示例均在Windows 11 22000版本,Visual Studio 2022环境下测试通过。
使用预编译版本运行
使用git下载源代码之后,切换到windows-prebuilt分支,执行如下命令
conda create -n eden python=3.8
conda activate eden
pip install -e python/
python -m eden.interactive
即可直接运行示例。
前置: MSVC与boost的安装
建议安装最新版本的Visual Studio,然后使用vcpkg安装boost(限于vcpkg特性,仅支持最新版本的python),vcpkg入门请参考官方文档。
中文用户的常见问题:
如果Visual Studio的安装语言不包含英文,需要使用visual studio installer安装英文语言包才能使用vcpkg;
低版本的Visual Studio需要手动绑定vcpkg才能使用,推荐升级到最新版的Visual Studio。
vcpkg install boost:x64-windows
环境后端cpp代码编译
※ Step1: 创建新项目
点击 文件 > 新建 > 项目,在弹出菜单中选择"控制台应用"项目模板,点击下一步。项目名称和位置任选,以下名称将选为eden_cpp。
※ Step2: 添加源文件
移动到"解决方案资源管理器"面板,右键单击"源文件",选择 添加 > 现有项,将项目路径下的全部cpp文件添加到解决方案中。(python\interface.cpp不用添加,添加可能会报错)
常见问题:
- Visual Studio会默认生成一个Hello World的cpp文件,删掉就行;
- 如果没有看到"解决方案资源管理器"面板,请到视图菜单中调出;
- 添加文件时可以搜索.cpp并全选,并不需要一个个添加。
※ Step3: 调整项目属性
在"解决方案资源管理器"面板中选中eden_cpp,然后点击菜单栏中的 项目 > 属性。
在弹出的eden_cpp属性页中,
- 点击"常规",确保C++语言标准选用/std:c++latest;
- 点击"调试",工作目录设置为${EDEN_ROOT}下任意子目录;
- 点击"VC++目录",在包含目录中增加$EdenRoot\include和$EdenRoot\custom。
※ Step 4: 编译运行
在菜单栏中选择 生成 > 生成解决方案。然后,点击 调试 > 运行。
常见问题:
如果运行路径没有选择${EDEN_ROOT}下的任意子目录,这里可能会生成成功,但运行时segmentation fault,原因是找不到config文件。为解决这个问题,也可以到main.cpp中把路径改掉。
环境的python接口安装
※ Step1: 配置python(latest)–此处用python3.10做示例。
可以使用venv或是anaconda一类的虚拟环境,也可以使用系统python3.10。以conda为例:
conda create -n eden python=3.8
※ Step2: 创建新项目
选择"动态链接库(DLL)"项目模板,项目名称和位置任意,以下称为eden_py
※ Step3: 添加源文件
移动到"解决方案资源管理器"面板,右键单击"源文件",选择 添加 > 现有项,将项目路径下的全部cpp文件添加到解决方案中。(main.cpp不用添加,添加可能会报错)
※ Step4: 调整项目属性
调整解决方案为Release-x64,然后在"解决方案资源管理器"面板中选中eden_cpp,点击菜单栏中的 项目 > 属性。
在弹出的eden_cpp属性页中,
-
点击"常规",确保C++语言标准选用/std:c++latest,确保目标文件名为eden_py(必须和interface.cpp中的MODULE名称一致);
-
点击"高级",目标文件扩展名改成.pyd
-
点击"VC++目录",在包含目录中增加$EdenRoot\include和$EdenRoot\custom;然后找到你所使用的python包含文件目录,也添加到VC++目录中。在引用目录中增加python的lib目录(python310.lib所在的目录)
包含目录在anaconda中是anaconda\envs\$EnvName\include,如果是系统python可能是C:\Python310\include
引用目录在anaconda中是anaconda\envs\$EnvName\libs,如果是系统python可能是C:\Python310\libs
-
点击C/C++,在 代码生成 > 运行库中选多线程/MT;预编译头选择不使用。
※ Step5: 编译
在菜单栏中选择 生成 > 生成解决方案。
然后,找到生成文件(一般在x64/Release下),选择dll或pyd结尾的四个文件,复制到$EdenRoot\python\eden\backend中。
※ Step6: 安装到python
在$EdenRoot下运行
pip install -e python/
然后尝试:
python -m eden.interactive
是否可以运行。