编译安装PyRosetta
发表于 2025/10/22
0
作者 | 丁浩源
介绍
Rosetta是一款在生物信息学和蛋白质科学领域备受推崇的软件包,专门用于蛋白质结构预测和蛋白质设计,而PyRosetta则是Rosetta的Python接口。目前官方网站提供的直接下载链接中,支持aarch64架构的版本仅限于Python 3.9和3.10。若需使用其他Python版本,需要自行下载源码进行编译。
编译安装
安装编译环境
安装编译环境,需准备Conda、Python、Ninja以及CMake。
-
安装Conda,详见Conda安装教程。
-
通过Conda安装Ninja,Ninja的安装教程可以查看Rosetta的源码README。
-
安装CMake,详见CMake安装教程。
-
安装完成上述环境之后,使用Conda新增一个Python环境,例如Python 3.7版本,环境名可自定义。
conda create -n 环境名 python=3.7
#激活版本
conda activate py37
安装PyRosetta
-
编译安装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版本。

-
导入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。


