【问题标题】:How to get SublimeText to load DLLs where they load fine using commandline如何让 Sublime Text 在使用命令行加载文件的位置加载 DLL
【发布时间】:2019-05-21 20:53:59
【问题描述】:

通过命令行使用 python 时,我可以很好地导入模块。但是,当我在 SublimeText3 中构建 python 脚本时,某些模块不会导入。我通常会收到以下错误:

ImportError: DLL load failed: The specified module could not be found.

问题看起来涉及依赖于带有“_”前缀(_sqlite3,_ssl)的模块的模块。例如:

 File "C:\ProgramData\anaconda3\Lib\sqlite3\__init__.py", line 23, in <module>
    from sqlite3.dbapi2 import *
  File "C:\ProgramData\anaconda3\Lib\sqlite3\dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ImportError: DLL load failed: The specified module could not be found.

系统:

Windows 10

SublimeText3(在故障排除过程中重新安装)

Python 3.7.3 [MSC v.1915 64 位 (AMD64)] :: Anaconda, Inc. on win32 (在故障排除过程中重新安装)

命令行和 ST3 都指向相同的 Python 实例。 这是机器上唯一的 python 安装。

已在 ST3 中使用默认 Python 构建并创建了新构建,两者都有相同的问题。

使用命令行时的结果:

Python 3.7.3 (default, Mar 27 2019, 17:13:21) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.

>>> import plotly

>>>

ST3 中的结果:

import plotly

Traceback (most recent call last):
  File "C:\Users\usr\Desktop\scrap.py", line 1, in <module>
    import plotly
  File "C:\ProgramData\anaconda3\Lib\site-packages\plotly\__init__.py", line 32, in <module>
    from plotly import (
  File "C:\ProgramData\anaconda3\Lib\site-packages\plotly\graph_objs\__init__.py", line 3, in <module>
    from plotly.basedatatypes import BaseLayoutType as _BaseLayoutType
  File "C:\ProgramData\anaconda3\Lib\site-packages\plotly\basedatatypes.py", line 25, in <module>
    from .callbacks import (Points, InputDeviceState)
  File "C:\ProgramData\anaconda3\Lib\site-packages\plotly\callbacks.py", line 2, in <module>
    from plotly.utils import _list_repr_elided
  File "C:\ProgramData\anaconda3\Lib\site-packages\plotly\utils.py", line 262, in <module>
    from chart_studio.utils import *
  File "C:\ProgramData\anaconda3\Lib\site-packages\chart_studio\__init__.py", line 2, in <module>
    from chart_studio import (plotly, dashboard_objs, grid_objs, session)
  File "C:\ProgramData\anaconda3\Lib\site-packages\chart_studio\plotly\__init__.py", line 10, in <module>
    from . plotly import (
  File "C:\ProgramData\anaconda3\Lib\site-packages\chart_studio\plotly\plotly.py", line 38, in <module>
    from chart_studio.plotly import chunked_requests
  File "C:\ProgramData\anaconda3\Lib\site-packages\chart_studio\plotly\chunked_requests\__init__.py", line 1, in <module>
    from . chunked_request import Stream
  File "C:\ProgramData\anaconda3\Lib\site-packages\chart_studio\plotly\chunked_requests\chunked_request.py", line 4, in <module>
    import ssl
  File "C:\ProgramData\anaconda3\Lib\ssl.py", line 98, in <module>
    import _ssl             # if we can't import it, let the error propagate
ImportError: DLL load failed: The specified module could not be found.
[Finished in 2.9s]

非常感谢任何帮助,这几天一直在坚持。

【问题讨论】:

  • 也许 SublimeText 是 32 位应用程序?
  • 我使用了以下安装程序:Sublime Text Build 3207 x64 Setup.exe
  • 问题不太可能基于 Sublime 是 32 位还是 64 位,因为它所做的只是执行外部程序。是否需要设置一些可能没有通过 Sublime 正确传播的环境变量?
  • 顺便说一句,感谢我们的回复。我在使用 ST3 时检查了 sys.path,其结果与使用命令行时相同。它指定 DLL 所在的目录。
  • @Odatnurd 我认为这可能与 ST3 使用的路径有关,不包括 DLL 所在的目录,但是当我查看 sys.path 时,它包括目录。在 ST 论坛上,您提到类似的问题可能与使用像 Anaconda 这样的 3rd 方构建有关。这可能是 ST3 选择 DLL 的原因吗?

标签: python anaconda sublimetext3


【解决方案1】:

对于将来遇到类似问题的人,我已通过卸载 Python 的 Anaconda 发行版并将其替换为 Python.org 的基本 Python 安装来解决此问题,然后使用 pip 手动安装包。虽然不是理想的解决方案,但这已经解决了问题,因此当我在 ST3 中构建 Python 脚本时,所有模块都可以正常导入。

【讨论】:

    猜你喜欢
    • 2018-12-07
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 2020-07-10
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多