鲲鹏社区首页
中文
注册
开发者
编译安装PyRosetta

编译安装PyRosetta

软件迁移

发表于 2025/10/22

0

作者 | 丁浩源

介绍

Rosetta是一款在生物信息学和蛋白质科学领域备受推崇的软件包,专门用于蛋白质结构预测和蛋白质设计,而PyRosetta则是Rosetta的Python接口。目前官方网站提供的直接下载链接中,支持aarch64架构的版本仅限于Python 3.9和3.10。若需使用其他Python版本,需要自行下载源码进行编译。

编译安装

安装编译环境

安装编译环境,需准备Conda、Python、Ninja以及CMake。

  1. 安装Conda,详见Conda安装教程

  2. 通过Conda安装Ninja,Ninja的安装教程可以查看Rosetta的源码README。

  3. 安装CMake,详见CMake安装教程

  4. 安装完成上述环境之后,使用Conda新增一个Python环境,例如Python 3.7版本,环境名可自定义。

    conda create -n 环境名 python=3.7

    #激活版本

    conda activate py37


安装PyRosetta

  1. 编译安装PyRosetta。

    cd source/src/python/PyRosetta

    python3 build.py -j24 --create-package $HOME/my_pyrosetta_package

    cd $HOME/my_pyrosetta_package/setup

    python3 setup.py install

    若执行第二步出现“Cmake is not able to find Python-libraries”报错,请参考2-编译过程中出现Cmake is not able to find Python-libraries的解决方法进行处理。

    安装完成之后,可以看到如下打印日志:


    可以看到指定目录的rosetta.so为Arm版本。


  2. 导入PyRosetta库。

    import pyrosetta


编译过程中出现Cmake is not able to find Python-libraries的解决方法


问题现象描述

编译安装PyRosetta过程中出现“Cmake is not able to find Python-libraries”。

关键过程、根本原因分析

通过查看Rosetta源码发现,rosetta.cmake文件使用了${PYTHON_LIBRARY}、${PYTHON_INCLUDE_DIR}这两个变量,这两个变量的值是由build.py中传入的,与以下参数相关,且build.py调用CMake:

--python-include-dir

--python-lib

如果没有传入--python-include-dir--python-lib,可能会提示CMake找不到Python的lib和so文件。

结论、解决方案及效果

修改编译命令为:

python3 build.py -j8 --create-package /root/demo/my_pyrosetta_package --python-include-dir /root/anaconda3/envs/py37/include/python3.7m --python-lib /root/anaconda3/envs/py37/lib/libpython3.7m.so.1.0

  • --python-include-dir:Python的include地址,存放.h文件,其中就包括Python.h。

  • --python-lib:Python的SO文件地址。

  • -j:官网为24,若系统内存小于32GB,建议使用-j4或者-j8



本页内容