我想使用Assimulo和Sundials来解决Python中的微分代数方程式,因此我试图将其安装在Ubuntu上。
对于Sundials的安装,我遵循了安装说明,并且据我所知它运作良好。
% cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lib/sundials-3.1.1/ ~/opt/sundials/sundials-3.1.1
% make
% make install
然后,我尝试使用命令pip3 install Assimulo
安装Assimulo,但收到错误消息。我还尝试通过下载安装文件并使用以下命令将其安装,来遵循Installation - Assimulo 3.0 documentation上的说明。结果相同的错误消息。
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
出什么问题了,我该如何解决?任何帮助将不胜感激!
答案 0 :(得分:2)
在通过pip安装numpy和cython后,通过pip install assimulo
在macos上安装时,我遇到了相同的错误。
对我来说,使用conda env可以解决问题:
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
答案 1 :(得分:1)
我也有同样的错误信息。如另一个答案中所建议,您可以从Conda获取已编译的软件包。但是,如果您想自己从源代码进行编译,在我看来PyPI源代码tarball并不包含所有需要的文件。至少缺少一些*.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);