如何将Abaqus Python库集成到PyCharm项目中

10 投票
2 回答
7286 浏览
提问于 2025-04-18 03:54

这里有一个类似的问题,是关于如何把Abaqus特定的Python库整合到在PyDev/Eclipse上运行的项目中。不过很遗憾,之前的回答并不适合我现在遇到的问题。

我正在使用ABAQUS 版本6.11-2和PyCharm 3.1.3的社区版。Abaqus的Python解释器在我Windows 7(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似乎无效”。

截图 - 设置对话框

截图 - 错误提示框

祝好

2 个回答

4

虽然我来得有点晚,但这个方法在我的Windows 10上,使用Abaqus 2016和PyCharm 2019.1专业版时有效:

  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。然后去文件/设置/项目/项目解释器,点击齿轮图标,再点击添加。选择系统解释器选项,然后指向Abaqus的bin目录下的python.exe。在我的情况下,这个路径是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的错误。不过,有些调试和代码补全功能是可以用的,比如:

在Abaqus中使用PyCharm调试器

在PyCharm中Abaqus Python代码补全

设置系统范围的路径感觉有点繁琐,但我找不到其他更好的方法来解决这个问题。

5

我正在使用 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 文件夹里的文件复制到你的 site-packages 文件夹

请注意,这个程序使用了 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

撰写回答