gpt4 book ai didi

python - 如何在 Windows 上的 Python 中安装优化包 pyOpt

转载 作者:可可西里 更新时间:2023-11-01 11:49:23 30 4
gpt4 key购买 nike

我的 Windows 7 笔记本电脑上安装了适用于 Python 的 Anaconda 包。

我按照以下说明执行了所有安装步骤: http://www.pyopt.org/install.html#installation

经过反复试验,我可以使用以下命令安装 pyOpt:

python setup.py install --compiler=mingw32

但是,我什至不能在 .. 运行最简单的教程示例。 http://www.pyopt.org/tutorial.html

.. 可能是因为安装中缺少优化器 SLSQP。运行教程示例时出现以下错误消息:

slsqp = pyOpt.SLSQP()
AttributeError: 'module' object has no attribute 'SLSQP'

如何在 Windows 上使用优化器等完全安装 pyOpt?

最佳答案

我要先说:我对我在做什么知之甚少......

我也纠结了很久。我觉得这与安装过程中模块的构建方式有关。我认为 pyOpt 模块都指向 fortran 和 c 库,它们在你运行时被“翻译”成 python

python setup.py install --compiler=mingw32

我一直在尝试使用不同的编译器和命令环境(管理员权限、powershell、cygwin 等),但都无济于事。 msvc 编译器在某一时刻失败。 Cygwin、MinGW32、IntelEM 都可以编译,但在运行实际示例时会产生相同的错误。

如果您查看 C:\PathToPython\Lib\site-packages\pyOpt\文件夹,您将看到包含所有模块的文件夹。当您调用 import 时,您正在导入这些模块......所以通过输入以下内容(例如......我认为):

from pyOpt import pySNOPT

您或多或少地指示导入在文件夹中导航以找到 pySNOPT 并导入它……我认为。您会注意到在\pyOpt\pySNOPT\中有一个文件 pySNOPT.py。导入时,使用 from pyOpt import SNOPT 它会在 pyOpt 中查找 SNOPT.py...但您会发现(正如 python 那样)没有要导入的此类文件。相反,只有一个 pySNOPT.py。知道这一点后,我们希望通过以下方式解决问题:

from pyOpt.pySNOPT import pySNOPT

但这也失败了。这次产生一个导入错误,指出“SNOPT 共享库导入失败”(我怀疑这是一个相当大的线索)。

如果您打开 pySNOPT.py(这可以替换为任何其他求解器的首字母缩略词)文件,您将看到熟悉的 python 模块格式回望着您。所有这些文件的第一行都是这样的:

try:
import snopt
except ImportError:
raise ImportError('SNOPT shared library failed to import')

这就是故障发生的地方。 “import snopt”行应该加载 snopt.dll(snopt.so,snopt.a for Linux, Unix)。运行 setup.py 时,如果我使用 cygwin 环境,它会在每个 C:\PathToCygwinDrive\lib\python2.7\site-packages\pyOpt\pyACRONYM 文件夹中创建 DLL。这些 DLL 似乎并未放置在与我告诉 PyCharm 使用的 Python 版本对应的位置 (c:\PathToPython\Lib\site-packages\pyOpt\pyACRONYM)。我在其他环境(powershell、Visual C++ 2008 64 位命令提示符、与此相关的任何其他命令提示符)中使用了所有编译器(包括 cygwin)。简单地将 DLL 从 Cygwin pyOpt 文件夹复制并粘贴到常规 Python pyOpt 文件夹是行不通的。我不知道是否有必须导入 DLL 的特殊方法或其他方法。阅读有关构建 C 扩展并将它们链接到 python 项目的内容让我头疼,而且速度太乏味了。

我以为这是我本地的计算机(因为一个小组成员设法让他的安装工作)但是当在另一个小组成员的计算机上进行设置时,我遇到了完全相同的错误。

需要注意的一件重要事情......我正在做 x64 架构中的所有事情(我试图帮助但也被困在这里的小组成员也是如此)。这可能是解决这个问题的真正秘诀。也许要让 pyOpt 在 64 位 Python 上工作需要克服太多困难。这让我想到了最后一点……我可以想到一些解决方法:

  1. 安装 32 位 Python,重新启动进程。
  2. 安装 Spyder IDE(通过 anaconda 或其他工具),然后使用以下方法安装 pyOpt:

    conda install --channel https://conda.anaconda.org/melund pyopt

    conda install --channel https://conda.anaconda.org/mutirri pyopt

    (均适用于 x64 窗口)请勿使用默认的 conda pyOpt(conda install pyopt),因为这是 0.84 版本,无法正常工作。

  3. 切换到 Linux(因为使用 Linux 编程就像使用润滑剂和肛门......你可以在没有它的情况下工作......但一切都会更加痛苦)

这些是我目前找到的解决方法。我希望有人尽快发布实际的解决方案!

关于python - 如何在 Windows 上的 Python 中安装优化包 pyOpt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33956706/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com