火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 646|回复: 4
打印 上一主题 下一主题

[视窗] 火山调用python代码文件问题

[复制链接]

12

主题

50

帖子

486

积分

中级会员

Rank: 3Rank: 3

积分
486
跳转到指定楼层
楼主
发表于 2023-11-3 19:55:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在使用火山调用python代码文件,遇到一个问题:“模块加载失败,请检查所配置的库路径中是否包含此文件.失败原因:No module named '_socket'”

大概报错意思是我的引入的库文件失败,
我的代码是2个文件:
1.wordpress_xmlrpc  这是一个第三方库的文件夹,python代码里需要import它
2.wp2.py的python代码文件

=====================
现在我在窗口初始化的时候,先让火山设置python开发环境:
<火山程序 类型 = "通常" 版本 = 1 />

方法 我的主窗口_创建完毕 <接收事件 类型 = 整数 注释 = "当本组件及其中所有子组件均被创建完毕后发送此事件.">
参数 来源对象 <类型 = 我的主窗口 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
{
    变量 库文件路径 <类型 = 文本型>
    变量 库路径文本 <类型 = 文本型>
    变量 模块名 <类型 = 文本型 值 = "wordpress_xmlrpc">
    变量 ""
    库路径文本 = ""
    // 这里, 要根据X64/X86, 来使用不同的Dlls
    如果 (为64位程序 ())
    {
        加入格式文本 (库路径文本, "%s\\Python3_9.zip;%s\\x64\\DLLs;%s", 取运行目录 (), 取运行目录 (), 取运行目录 ())
    }
    否则
    {
        加入格式文本 (库路径文本, "%s\\Python3_9.zip;%s\\x86\\DLLs;%s", 取运行目录 (), 取运行目录 (), 取运行目录 ())
    }
    火山Python.置库路径 (库路径文本)
    调试输出 ("库路径文本为====" + 库路径文本)
    如果 (火山Python.初始化 () == 假)
    {
        信息框 ("Python脚本引擎初始化失败,请检查环境配置")
    }

    返回 (0)
}


以上是根据案例看来的,先初始化python环境
然后我需要把 【wordpress_xmlrpc】这个文件夹放入到DLLs里,同时把我要执行的python文件【wp2.py】也放到运行环境下 (取运行目录()这个目录下)
,此时在该目录下有了wp2.py文件 ,和DLLs文件夹,为保险起见,我在DLLs里和该目录下都放了 【wordpress_xmlrpc】;

最后点击按钮事件,执行如下代码:
<火山程序 类型 = "通常" 版本 = 1 />
否则 (来源对象 == 按钮_调用python)
{
    变量 模块对象 <类型 = Py模块类>
    变量 代码文件名 <类型 = 文本型 值 = "wp2">

    如果 (火山Python.是否已初始化 () == 真)
    {
        模块对象 = 火山Python.加载Py文件 (代码文件名)

        如果 (模块对象.是否有效 == 假 || 模块对象.检查类型 () == 假)
        {
            编辑框_python返回.加入文本行 ("模块加载失败,请检查所配置的库路径中是否包含此文件.")
            编辑框_python返回.加入文本行 ("失败原因:" + 火山Python.取异常文本 ())
        }
    }
}


如果初始化成功,则 :模块对象 = 火山Python.加载Py文件 ("wp2")

最后,执行结果报错:就是最开始上面写的一堆了,后面还有很长,大概意思就是加载模块失败,等等文件缺失了

PS:我用了好几年PY了,我的代码和模块在win环境下(vscode里)跑是通的,到火山是第一次用,不知道我是哪里设置错了,请大神指教,谢谢!



回复

使用道具 举报

12

主题

50

帖子

486

积分

中级会员

Rank: 3Rank: 3

积分
486
沙发
 楼主| 发表于 2023-11-3 20:01:38 | 只看该作者
补充:以上是我最后修改的代码,在修改之前其实也是报错的:
修改前:
我在点击按钮事件里,加上了一句代码:
火山Python.添加模块路径 (取运行目录 ()+"wordpress_xmlrpc")
该代码我是猜测火山没有让执行python代码文件里自动去Dlls目录下找的情况下,手动添加了模块路径
但是,依然是报错的,报错提示一样。
回复

使用道具 举报

2

主题

9

帖子

56

积分

注册会员

Rank: 2

积分
56
板凳
发表于 2024-2-17 18:12:18 | 只看该作者
一样问题,貌似py在一个沙箱跑,sqlite3也跑不通!
回复

使用道具 举报

2

主题

9

帖子

56

积分

注册会员

Rank: 2

积分
56
地板
发表于 2024-2-18 07:58:50 | 只看该作者
我解决了看我发贴看看有没帮助到你
回复

使用道具 举报

0

主题

19

帖子

100

积分

注册会员

Rank: 2

积分
100
5#
发表于 2024-2-21 04:43:54 | 只看该作者
这么好的贴居然这么少人看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-5-20 07:29 , Processed in 0.095188 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表