在visual studio 中无法生成exe_RecurDyn使用技巧:从C ++中调用Python函数

本文介绍了如何在Visual Studio 2015中配置环境,以便从C++代码调用Python函数。通过设置Python的include和lib路径,链接Python38.lib,并设置PYTHONHOME和PYTHONPATH环境变量,成功创建了C++项目。在调试和编译过程中,遇到Python38.dll缺失的问题,解决方法是将dll文件与exe文件放在同一目录。最终实现了从C++成功调用Python函数。
摘要由CSDN通过智能技术生成

2a58cb7b36eabdb54ce44f0745554782.png

本文将向您展示在C ++中使用Python计算的方法,以及通过Microsoft Visual Studio2015版本和Anaconda 3随附的Python 3.8版,探索如何在C ++中使用Python。从“编写 Python 的 C++ 扩展 - Visual Studio | Microsoft Docs”一文中(本文中使用的程序代码来自以下Web文档),小编得到了启示:

编写Python的 C++ 扩展 - Visual Studio | Microsoft Docs:

https://docs.microsoft.com/zh-cn/visualstudio/python/working-with-c-cpp-python-in-visual-studio?view=vs-2019

对于初学者,需要注意的是,所用的计算机操作系统为Windows 10(64位),Anaconda 3为64位版本。

1. 当启动C ++时,该项目被设置为Win32 Console Application(控制台应用程序)。

启动项目,并需要一些其他设置。展开Debug菜单,然后在底部的属性中设置以下内容。

2. Pythoninclude文件夹和libs文件夹安装至VC++ Directory (目录)的Include Directory (包含目录)和Library Directories(库目录)中。

60768a0302ceffec522f17bf740b7d4c.png

VC++ Directory(目录)

可参考如下设置:

D:\Anaconda3\pkgs\Python-3.8.3-he1778fa_2\include

D:\Anaconda3\pkgs\Python-3.8.3-he1778fa_2\libs

3. Python38.lib添加到Linker

5195c5f44afe954a66cb5364d5374081.png

Linker

4. 如果环境变量中没有PYTHONHOMEPYTHONPATH,可在系统变量中进行添加。

可参考如下设置:

D:\Anaconda3\pkgs\Python-3.8.3-he1778fa_2

5. 编写并添加includePython.h如下:

6d25964dfac6d563dfacf34fc2352279.png

includePython.h

4e276c7b1795d3d146b20b9dd86b216c.png

添加includePython.h的原因是使其即使在调试编译时也可以工作,因为默认设置是所添加的功能仅在发行版编译中有效。

6. 编写Main函数,如下所示:

382c38ca1e078622612ede3a1b08bc41.png

56ee6dbea8433dee358dfc61db322b62.png

7. 编写testFile.py如下:

# -*- coding: utf-8 -*-

def test_func():

print (“hello def”)

8. 编译时,将平台编译为x64

4f2713f323168ba9a7d227f8abea8a42.png

编译平台

像这样编译时,exe文件为D:\ My_cpp_project \ cppContainsPython \x64 \ Debug,它将位于x64 \ Debug位置,例如,testFile.py文件应该与exe文件同在此文件夹中。

9. CMD运行exe文件(命令提示符)

也许是出于某种原因,系统收到一条错误消息提示Python38.dll丢失。所以小编将Python38.dll文件复制到Anaconda文件夹中,并将其与exe文件放在同一文件夹中。这一做法起作用了。接着从C++调用了Python函数,并从Python中打印了hello def。

9038c14ef61330d5b54c29be360d78ce.png

Python结果

接着就可以从C ++调用Python函数了。

如果您想更深入地了解RecurDyn,或是对我们的服务有任何疑问、意见、建议、投诉、推荐、表扬等,请通过以下官方联系方式与我们取得联系。我们将给予高度重视,并在最短时间内答复您。

电话:+86-571 5692 0398

传真:+86-571 5692 0399

官网:https://support.functionbay.cn/cn

邮箱:support@mbdsim.com

地址:浙江省杭州市滨江区浦沿街道六和路307F1205

d42df993780d61450c14c491216fa51a.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值