繁体   English   中英

python3.8加载dll OSError: [WinError 127] 找不到指定的程序

[英]python3.8 load dll OSError: [WinError 127] The specified procedure could not be found

环境:windows10-64,python3.8.8,

CALL 关系是 -->

关系

  1. 在文件jgtrade_api_func_def.py
    #!/usr/bin/env python
    #  coding:utf-8
    from ctypes import *
    
    jgtradeapi = windll.LoadLibrary('lib/td/JGTradeApi.dll')
  1. 在文件td_api.py
    # -*- coding:utf-8 -*-
    from jg_api.jgtrade_api import *
    ###
  • main.py
    from jg_api.td_api import JGTradeApi
  • 当我运行td_api.py时,它运行良好

  • 当我运行main.py , FileNotFoundError

    文件“D:\work\WCJGClient\jg_api\jgtrade_api_func_def.py”,第 14 行,在 jgtradeapi = windll.LoadLibrary('lib/td/JGTradeApi.dll') 文件“D:\ProgramData\Anaconda3\lib\ ctypes_init_ .py”,第 459 行,在 LoadLibrary 中返回 self。 dlltype(名称)文件“D:\ ProgramData \ Anaconda3 \ lib \ ctypes_ init .py”,第381行,在init self._handle = _dlopen(self._name,mode)FileNotFoundError:找不到模块'D:\ work \ WCJGClient\lib\td\JGTradeApi.dll'(或其依赖项之一)。 尝试使用带有构造函数语法的完整路径。

  • 然后我将路径更改为windll.LoadLibrary('jg_api/lib/td/JGTradeApi.dll') ,错误发生了变化

    文件“D:\work\WCJGClient\jg_api\jgtrade_api_func_def.py”,第 14 行,在 jgtradeapi = windll.LoadLibrary('jg_api/lib/td/JGTradeApi.dll') 文件“D:\ProgramData\Anaconda3\lib\ctypes_ init _.py",第 459 行,在 LoadLibrary 中返回 self。 dlltype(name) 文件“D:\ProgramData\Anaconda3\lib\ ctypes_init .py”,第 381 行, init self._handle = _dlopen(self._name, mode) OSError: [WinError 127] The specified procedure could not be成立。

  • 我也试过用绝对路径,但是报同样的错误,有没有人遇到过这样的问题?

OMG,我解决了这个问题!!!原因是DLL的引用和pyside2冲突!而且当我更改导入顺序时,它运行良好在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM