【问题标题】:Import Error with certain modules in pyoptsparsepyoptsparse 中某些模块的导入错误
【发布时间】:2016-06-15 13:07:37
【问题描述】:

大家好,

我已经在我的电脑上安装了 Openmdao、pyOpt 和 pyoptsparse。由于我的程序与 Scipy 优化器一起使用,我尝试使用 pyoptsparse 的随机优化器(即“ALPSO”)。它奏效了,我很高兴。但事实证明它似乎是唯一有效的。

每次我尝试使用另一个(如“SLSQP”,这是默认优化器!)时,我都会在由“ -' 和 '+'。

有人知道该怎么做吗?如果它改变了什么,我正在使用 Ubuntu。

【问题讨论】:

  • 您能否提供更多详细信息,例如您使用的 OpenMDAO 版本、安装方法以及您使用的 Ubuntu 版本?
  • @kmarsteller 我正在使用 Ubuntu 14.04 和 1.6.4 版本的 openmdao。我使用pip安装openmdao,我从bitbucket获取pyoptsparse的存储库,然后我从存储库运行:python setup.py install
  • 嗯。听起来您的安装版本/方法是正确的。我认为 OpenMDAO 可以看到 pyoptsparse,否则 ALPSO 将不起作用。你能发布一些产生错误的代码吗?
  • 这是一个来自抛物面教程的示例:Choice = 1 使用 Scipy,Choice = 2 使用 pyOpt 和 ALPSO,我明白了:“FutureWarning:元素比较失败;返回标量,但在如果 mat:" 中的'coo',未来将执行元素比较,但它给出了正确的答案。 Choice = 3 将 pyOpt 与 SLSQP 一起使用,我得到:“pyOptSparse 错误:导入已编译的 slsqp 模块时出错”,最后一个错误回溯:[...]/pySLSQP.py,第 77 行,在 init slsqp 模块') pyoptsparse.pyOpt_error.Error
  • 请注意,当我打印 _check_import() (来自 pyoptsparse 驱动程序)时,我得到:['ALPSO','CONMIN','FSQP','IPOPT','NLPQLP','NSGA2', 'PSQP'、'SLSQP'、'SNOPT'、'NLPY_AUGLAG']。

标签: python-2.7 openmdao


【解决方案1】:

感谢 swryan 的链接,我找到了答案。

一个可能的答案是将 libgfortran.so.3 放在 anaconda2/lib 中,但我已经有了它。

他们还说安装 anaconda 4.0+ 时问题已解决,但我也有最新版本。

对我有用的是运行:conda update libgfortran --force

在没有 --force 的情况下执行此操作会使 scipy 逆行,这似乎会禁用 scipy.optimize.least_squares。如果你这样做了,你可以运行 conda update scipy --force

【讨论】:

    【解决方案2】:

    在为 pyoptsparse 运行“python setup.py install”时是否遇到任何错误?我查看了 pyoptsparse 的 setup.py 文件,其中有一些您可以尝试的说明:

        print("\nTo install, run: python setup.py install --user\n\n"
              "To build, run: python setup.py build_ext --inplace\n\n"
              "For help on C-compiler options run: python setup.py build --help-compiler\n\n"
              "For help on Fortran-compiler options run: python setup.py build --help-fcompiler\n\n"
              "To specify a Fortran compiler to use run: python setup.py install --user --fcompiler=<fcompiler name>\n\n"
              "For further help run: python setup.py build --help"
          )
    

    【讨论】:

    • 我没有收到任何错误,但我收到了几个警告,例如“未使用的变量”
    • 我只运行了安装行而没有构建它,这可能是问题吗?
    • 自从我构建 pyoptsparse 以来已经很长时间了,所以我不记得是否需要使用 --inplace 。你用的是哪个版本的python?
    • 我正在使用 python 2.7 和最新版本的 anaconda2
    • 查看这个帖子,那里有几个不同的建议:github.com/ContinuumIO/anaconda-issues/issues/686
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 2017-01-15
    • 2020-08-16
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 2013-07-03
    相关资源
    最近更新 更多