【问题标题】:How integrate Abaqus python libraries into a project hosted in PyCharm如何将 Abaqus python 库集成到 PyCharm 中托管的项目中
【发布时间】:2014-06-08 04:55:41
【问题描述】:

有一个类似的question,关于将 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 似乎无效'。

问候

【问题讨论】:

  • 您是否尝试将解释器添加到项目解释器中?

标签: python pycharm abaqus


【解决方案1】:

我使用的是 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

【讨论】:

    【解决方案2】:

    晚了五年,但这对我在 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 环境变量。我修剪了一个重复条目和一些 . 路径。

    1. 重新启动 PyCharm 以获取新的 PYTHONPATH,转到 File/Settings/Project/Project Interpreter,单击 Cog 图标,然后单击 Add。选择 System Interpreter 选项,然后将其指向 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。但是一些调试和代码完成工作,例如:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-22
      • 2018-12-16
      • 1970-01-01
      • 2018-06-24
      • 2020-07-06
      • 1970-01-01
      • 2019-01-26
      相关资源
      最近更新 更多