为了账号安全,请及时绑定邮箱和手机立即绑定

旋转错误:失败,退出状态为 2。麻木和皮维斯塔

旋转错误:失败,退出状态为 2。麻木和皮维斯塔

翻阅古今 2022-09-20 17:22:16
我想对以下代码进行西顿化,但我收到一个错误。import numpy as npcimport numpy as npimport pyvista as pvfrom mesh_funcs import *cimport cython from libcpp cimport bool#import matplotlib.pyplot as plt#Getting mesh points from pyvista unfortunately with a for loopcdef class pv_cell:    def pv_grid_cell_data(mesh2,bool points_toggle=True,                          bool centres_toggle=True,bool volumes_toggle=True, bool areas_toggle=True):        if areas_toggle==True:            points_toggle==True        if centres_toggle==True:            points_toggle==True        cdef np.ndarray gcp=np.zeros([mesh2.n_cells,8,3])        cdef np.ndarray gcc=np.zeros([mesh2.n_cells,3])        cdef np.ndarray gcv=np.zeros([mesh2.n_cells,3])        cdef np.ndarray grid_facets=np.array([[0,1,2,3], [0,1,5,4], [1,2,6,5], [7,6,2,3], [7,3,0,4], [4,5,6,7]])        cdef np.ndarray gca=np.zeros([mesh2.n_cells,6])        for n1 in range(0,mesh2.n_cells):            if points_toggle==True:                gcp[n1]=mesh2.extract_cells(n1).points            if centres_toggle==True:                gcc[n1]=[np.mean(gcp[n1][:,0]),np.mean(gcp[n1][:,1]),np.mean(gcp[n1][:,2])]            if volumes_toggle==True:                gcv[n1]=mesh2.extract_cells(n1).compute_cell_sizes()["Volume"]            if areas_toggle==True:                for n2 in range(0,6):                    ph8=gcp[n1][grid_facets[n2]]                    gca[n1,n2]=tri_area(ph8[[0,2,3]])+tri_area(ph8[[0,1,3]])        return gcp,gcc,gcv,gca我的 setup.py 如下from setuptools import setupfrom Cython.Build import cythonizeimport numpysetup(    ext_modules=cythonize("pv_cell_funcs.pyx"),include_dirs=[numpy.get_include()])我通过以下方式启动 setup.py。python setup.py build_ext --inplacepause错误很长。它声明 bool 是一个未声明的标识符。然后它列出了许多语法错误。最后一行是error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Tools\\MSVC\\...x64\\cl.exe' failed with exit status 2在此处输入图像描述
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

由于您正在运行:


from libcpp cimport bool

您应该将语言从默认语言更改为:cc++setup.py


from setuptools import setup

from Cython.Build import cythonize

import numpy


setup(

    ext_modules=cythonize("pv_cell_funcs.pyx", language='c++'),

    include_dirs=[numpy.get_include()])

请参阅如何声明 bool 类型的对象?以便在 cython 中使用。bool


查看完整回答
反对 回复 2022-09-20
  • 1 回答
  • 0 关注
  • 53 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信