栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

C#无法调用python文件的一种解决办法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#无法调用python文件的一种解决办法

前言:

本人目前在进行的是一个Revit二次开发项目。在通过调用Python数据库,经由C#接口在Revit中进行创建模型的时候遇到了问题。只有C#程序里的dialog能显示,但模型不见踪影。三周内试过了非常多的办法,就差重装系统了。查阅了CSDN里很多文章,但说的都不够明确。今天终于解决。在此记录,以利后人。

感谢此文提供的测试文件和评论区提供的思路

c#调用python的四种方法(尝试了四种,只详细讲解本人成功的后两种,其余方法只列出,详细用法请自行谷歌百度)_武林大皮虾的博客-CSDN博客_c#调用python

感谢外包人员杨博士的协助

1. 问题描述:

在spyder中python文件可执行,但无法在C#中调用python提供的数据

2. 解决流程

(1)首先尝试在cmd控制台中运行python文件

 提示无法载入numpy

那么下一步显然是安装numpy等常用包

(2)安装numpy等常用包

 (3)再次运行python文件

 和第一次情况一样。这就很令人费解了。

转念一想,可能是anaconda的问题。按杨博士的说法,anaconda和系统有冲突。因为也安装过其他版本的python,于是把系统配置环境里的anaconda相关的地址删除(此处省略,配置系统的操作很容易搜到),换了个python地址。

(4)通过其它python应用程序运行python文件

 见上图,在要运行文件名前加入其他地址的python应用程序。此时显示缺少一些包。

(5)安装缺少的包。程序正确运行。

(6)调入到C#文件中生成dll,能被Revit识别并输出模型。完美解决

 完结撒花

3. 方法总结和感悟

现在回想起来就是个系统环境问题。使用其他编译器会掩盖系统环境不匹配的问题。有些时候还是要多使用cmd而不是其他编译器进行操作,尤其是涉及到不同编程语言,不同软件的协同问题。

不过我知道有人使用anaconda的python成功执行了此python文件,所以也不能把锅全甩给anaconda。

后来有人分析是可能之前安装的包都在anaconda目录下,只能在其内部调用。而C#即便是调用了anaconda里的python也不能保证其他包不确实且回报错,感觉很奇怪。

如果知道怎么做,所有的操作花不了三分钟,但想出到哪里去解决就很难。

感谢在解决这个问题上所有给我提供过帮助的人。我还要继续努力。

希望此文对有需要的人有所帮助

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349958.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号