【问题标题】:python3.8 load dll OSError: [WinError 127] The specified procedure could not be foundpython3.8 load dll OSError: [WinError 127] The specified procedure could not be found
【发布时间】:2022-01-17 10:43:17
【问题描述】:

环境: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') LoadLibrary 中的文件“D:\ProgramData\Anaconda3\lib\ctypes_init_.py”,第 459 行 return self.dlltype(name) init 中的文件“D:\ProgramData\Anaconda3\lib\ctypes_init.py”,第 381 行 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') LoadLibrary 中的文件“D:\ProgramData\Anaconda3\lib\ctypes_init_.py”,第 459 行 return self.dlltype(name) init 中的文件“D:\ProgramData\Anaconda3\lib\ctypes_init.py”,第 381 行 self._handle = _dlopen(self._name, mode) OSError: [WinError 127] 找不到指定的程序。

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

【问题讨论】:

    标签: python ctypes dllimport loadlibrary oserror


    【解决方案1】:

    OMG,我解决了这个问题!!!原因是DLL的引用与pyside2冲突!而且当我更改导入顺序时,它运行良好

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-18
      • 1970-01-01
      • 2019-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多