Windows平台二进制安装

1、安装环境

  • Windows 平台:Windows11系统
  • 显卡:使用Nvidia类型的显卡
  • CPU:Intel i7+
  • OpenGL:4.6+
  • 内存:8G+

2、运行依赖

3、安装

使用pip命令安装项目:

pip install PyPeridyno

推荐使用管理员权限安装在真实环境中。

4、测试

复制测试代码到新文件GL_GlfwGUI.py:

import PyPeridyno as dyno

scn = dyno.SceneGraph()

app = dyno.GLfwApp()
app.set_scenegraph(scn)
app.initialize(1920, 1080, True)
app.set_window_title("Empty GUI")
app.main_loop()

使用shell运行文件:python -u "/path/GL_GlfwGUI.py"

运行结果如下图所示,说明安装正常:

5、使用

使用前先导入PyPeridyno包:import PyPeridyno as dyno

使用方法:

  1. python中创建类使用PyPeridyno包中的类即可,python会调用C++代码。类名与C++中的类名相同。例如:C++代码:std::shared_ptr<SceneGraph> scn = std::make_shared<SceneGraph>();,更改为python代码:scn = dyno.SceneGraph()

  2. 对于C++中使用了泛型的类,python中改为类名+泛型简写的形式,例如:C++中CodimensionalPD<DataType3f>在python中为CodimensionalPD3f

  3. python中所有方法名称均与C++方法相同,只是从驼峰命名更改为下划线命名。引用运算符(.和->),统一更改为python中的点运算符(.),例如:C++代码:scn->setLowerBound();,更改为python:scn.set_lower_bound()

  4. python中的dyno.Vector3f()与C++中的dyno::Vec3f()功能相同,但python中输入数据需要使用列表[],如果数据相同,不可以使用C++中的简写形式,例如:C++:dyno::Vec3f(1),更改为python:dyno.Vector3f([1,1,1])

  5. 使用PyPeridyno时,不支持C++方法中的默认参数,需要完整的写出参数。例如:C++代码:CodimensionalPD<DataType3f>(0.15, 120, 0.001, 0.0001),改为python代码为:CodimensionalPD3f(0.15, 120, 0.001, 0.0001, "default"),需要添加"default"默认参数。

  6. python使用C++中的枚举类型,命名与C++完全相同,调用时需要写出枚举类型名称,例如:GLPointVisualModule::PER_OBJECT_SHADER,更改为python:dyno.GLPointVisualModule().ColorMapMode.PER_OBJECT_SHADER

  7. python中导入文件的路径书写方法与C++相同,需要添加dyno.get_asset_path()+相对路径,绝对路径也可接受。默认路径为C:\ProgramData\Peridyno\data,这是在pip安装的时候创建的,不包含源码安装中的数据,有需要可以在data下载。

其余使用方法与C++代码相同。

6、pip安装常见问题

问题1:为什么要使用管理员权限?

答:pip执行安装过程中,会复制环境变量CUDA_PATH中的cufft64_11.dll文件到环境变量中的python路径下,如果不使用管理员权限,可能会导致复制脚本执行失败,虽然也可以正常安装,不会有报错,但是缺少cufft64_11.dll,会导致无法正常运行。如果没有管理员权限,可以手动复制cufft64_11.dll到python安装路径下

问题2:python程序运行过程中报错:ImportError: DLL load failed while importing PyPeridyno: 找不到指定的模块。

答:这是cufft64_11.dll文件不兼容或者导入失败导致的,可以看一下自己的CUDA_PATH路径,检查一下CUDA版本是否哦为12.2,可以手动复制CUDA版本为12.2等的cufft64_11.dll到python目录。也有可能是python版本导致的,请使用python3.12

问题3:如何重新安装?

答:执行pip uninstall PyPeridyno,之后清除pip缓存pip cache purge,再重新安装pip install PyPeridyno