9

关于将 Abaqus 特定的 python 库集成到托管PyDev/Eclipse. 但不幸的是,答案与我手头的问题不兼容。

我正在使用ABAQUS版本 6.11-2 和PyCharm 3.1.3. Abaqus python 解释器位于我的 windows7(64) 机器上的以下位置:

C:\SIMULIA\Abaqus\6.11-2\Python\Obj\Python.exe
Python 2.6.2 for Abaqus 6.11-2 (r262:71600, Jun 29 2011, 19:23:41) [MSC v.1500 64 bit (AMD64)] on win32

我需要 PyCharm 来解决的库,以便让它发挥代码完成的魔力——至少我认为它们是这样的。

C:\SIMULIA\Abaqus\6.11-2\Python\Lib
C:\SIMULIA\Abaqus\6.11-2\Python\Lib\abaqus.pyc
C:\SIMULIA\Abaqus\6.11-2\Python\Lib\abaqusConstants.pyc

这是我正在尝试处理的脚本的第一行代码。

from abaqus import *
from abaqusConstants import *
backwardCompatibility.setValues(includeDeprecated=True, reportDeprecated=False)
import sketch
import part

PyCharm 用红色下划线标记 abaqus 和 abaqusConstants 导入。显示:

 "Unresolved reference 'abaqus'".

有人可以向我解释如何在 PyCharm 中配置项目,以便 PyCharm 可以解析这些导入吗?

在设置对话框中添加提到的 Python.exe 作为项目解释器将导致以下错误消息框显示“无法在 ~path~ 设置 python SDK。SDK 似乎无效'。

屏幕截图 - 设置对话框

屏幕截图 - ErrorMessageBox

问候

4

2 回答 2

4

我用的是abaqus 6.14-4,希望对你有帮助。我认为为什么我们需要 PyCharm 是因为我们想充分利用它的类型检查器和其他功能。如果我们只需要一个编辑器,那么 Abaqus PDE 就足够了。

为了达到这个目的,我找了很长时间abaqus python的源码,没找到。由于 abaqus 只提供编译后的 *.pyc 文件,所以我使用工具 uncompyle6 对 *.pyc 文件进行解码,并在其中添加一些函数。

有我的项目: abaqus_pycharm

  1. 注册\SIMULIA\Abaqus\6.14-4\tools\SMApy\python2.7\python.exe为您的口译员(或者您可以选择任何您想要的)

  2. 将 import-files 文件夹中的文件复制到您的站点包文件夹

注意到这个程序使用 os.system 命令来运行 abaqus 命令行,如下图所示:

def saveAs(self, pathName):
    if isinstance(self.debug, bool) and self.debug:
        print(pathName)
    if 'ABAQUS_BAT_SETTING' in os.environ.keys():
        self.abaqus_bat_setting = os.environ['ABAQUS_BAT_SETTING']
    if 'ABAQUS_BAT_PATH' in os.environ.keys():
        self.abaqus_bat_path = os.environ['ABAQUS_BAT_PATH']
    os.system(self.abaqus_bat_path + ' cae -' + self.abaqus_bat_setting + ' ' + os.path.abspath(sys.argv[0]))

所以我们需要设置如下环境:

environ['ABAQUS_BAT_PATH'] = 'D:\\SIMULIA\\Abaqus\\Commands\\abaqus'
environ['ABAQUS_BAT_SETTING'] = 'noGUI'

它将运行为:

D:\SIMULIA\Abaqus\Commands\abaqus.bat -noGUI your_current_working_file.py
于 2019-04-08T05:55:13.543 回答
4

聚会晚了五年,但这对我在 Windows 10 上使用 Abaqus 2016 和 PyCharm 2019.1 Professional 有效:

  1. 打开 Abaqus CAE,进入内核命令行界面(>>>图标)并输入以下内容:
>>> import os
>>> print(os.environ['PYTHONPATH'])
C:\SIMULIA\CAE\2016;C:\SIMULIA\CAE\2016\win_b64;C:\SIMUL ...
  1. 复制输出并将其设为系统范围的PYTHONPATH环境变量。我修剪了一个重复条目和一些.路径。

设置系统 PYTHONPATH 环境变量

  1. 重新启动 PyCharm 以选择新的PYTHONPATH,转到 File/Settings/Project/Project Interpreter,单击 Cog 图标,然后单击 Add。选择 System Interpreter 选项,然后将其指向python.exeAbaqusbin目录中的 。就我而言,这是C:\SIMULIA\CAE\2016\win_b64\code\bin\python.exe. 不要被其他人误导C:\SIMULIA\CAE\2016\win_b64\tools\SMApy\python2.7\python.exe- 他们不会工作。

这不是万无一失的——例如,你的线路from abaqus import *对我不起作用——即使我添加ABA_PATH到我得到的系统路径ImportError: abaqus module may only be imported in the Abaqus kernel process。但是一些调试和代码完成工作,例如:

将 PyCharm 调试器与 Abaqus 一起使用

PyCharm 中的 Abaqus Python 代码完成

设置系统范围的路径似乎有点笨拙,但我无法以任何其他方式进行。

于 2019-04-04T02:31:25.583 回答