我想使用Assimulo和Sundials来解决Python中的微分代数方程,因此我正在尝试将其安装在Ubuntu上。
对于日晷的安装,我按照安装说明进行操作,据我了解它运行良好。
% cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lib/sundials-3.1.1/ ~/opt/sundials/sundials-3.1.1
% make
% make install
然后我尝试使用命令安装 Assimulo pip3 install Assimulo
,但我收到一条错误消息。我还尝试按照安装 - Assimulo 3.0 文档中的说明下载安装文件并使用以下命令进行安装。它会导致相同的错误消息。
sudo python3 setup.py install --sundials-home=/usr/local/lib/sundials-3.1.1
这是我收到的错误消息:
target build/src.linux-x86_64-3.6/assimulo/thirdparty/hairer/dopri5module.c does not exist:
Assuming dopri5module.c was generated with "build_src --inplace" command.
error: 'assimulo/thirdparty/hairer/dopri5module.c' missing
出了什么问题,我该如何解决?任何帮助将不胜感激!
在 pip 安装 numpy 和 cython 之后,通过 pip install assimulo
在 macos 上安装时,我遇到了同样的错误。对我来说,使用conda env可以解决问题:
- 创建 conda 环境:
conda create -n your_name_goes_here
-
conda activate your_name_goes_here
-
conda install python=3.6
(我注意到你也可以使用 3.7) -
conda install -c conda-forge assimulo
我也有同样的错误消息。正如另一个答案中所建议的,您可以从Conda获得一个编译包。但是如果你想自己从源代码编译,在我看来,PyPI 源代码压缩包不包含所有需要的文件。至少缺少一些*.pyf
文件。所以,我改用了SVN存储库:
svn checkout https://svn.jmodelica.org/assimulo/tags/Assimulo-3.0/ assimulo
通过编译这个源代码树,我设法通过了您遇到的原始错误,但是我现在遇到了另一个我还不知道如何解决的构建错误:
ssimulo/solvers/sundials.c: In function '__pyx_f_8assimulo_7solvers_8sundials_5CVode_initialize_cvode':
assimulo/solvers/sundials.c:33274:31: error: too many arguments to function 'CVodeCreate'
__pyx_v_self->cvode_mem = CVodeCreate(__pyx_t_3, __pyx_t_4);