首页 > 解决方案 > 可以从 pycharm 运行脚本,但不能从终端运行。ImportError:DLL 加载失败:找不到指定的模块

问题描述

import PIL.ImageGrab

im = PIL.ImageGrab.grab()
im.show()

在 Pycharm 中工作,不形成命令行。尝试了很多东西,可以在下面看到,不知道还有什么要改变的。

C:\Users\a.b>C:\Users\a.b\AppData\Local\Continuum\anaconda3\python.exe C:\Users\a.b\PycharmProjects\emlekezteto\screenshot.py

C:\Users\a.b>C:\Users\a.b\AppData\Local\Continuum\anaconda3\python.exe C:\Users\a.b\PycharmProjects\emlekezteto\screenshot.py
Traceback (most recent call last):
  File "C:\Users\a.b\PycharmProjects\emlekezteto\screenshot.py", line 1, in <module>
    import PIL.ImageGrab
  File "C:\Users\a.b\AppData\Local\Continuum\anaconda3\lib\site-packages\PIL\ImageGrab.py", line 20, in <module>
    from . import Image
  File "C:\Users\a.b\AppData\Local\Continuum\anaconda3\lib\site-packages\PIL\Image.py", line 90, in <module>
    from . import _imaging as core
ImportError: DLL load failed: The specified module could not be found.


    from . import _imaging as core
ImportError: DLL load failed: The specified module could not be found.

我检查的事情:

1. Pycharm 解释器是一样的。在 Pycharm 和命令行中:

C:\Users\a.b\AppData\Local\Continuum\anaconda3\python.exe 

2. 即使工作目录相同,即在代码中放入下面的东西,仍然是同样的问题。默认情况下,这是在 Pycharm 中运行表单时的工作目录。

os.chdir(r'C:\Users\a.b\PycharmProjects\emlekezteto') 

3. 对于 Pycharm,sys.path 不同:

['C:\\Users\\a.b\\PycharmProjects\\emlekezteto', 'C:\\Program Files\\JetBrains\\PyCharm 2019.3\\plugins\\python\\helpers\\pydev', 'C:\\Users\\a.b\\PycharmProjects\\emlekezteto', 'C:\\Program Files\\JetBrains\\PyCharm 2019.3\\plugins\\python\\helpers\\pycharm_display', 'C:\\Program Files\\JetBrains\\PyCharm 2019.3\\plugins\\python\\helpers\\third_party\\thriftpy', 'C:\\Program Files\\JetBrains\\PyCharm 2019.3\\plugins\\python\\helpers\\pydev', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\python37.zip', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\DLLs', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\lib', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3', 'C:\\Users\\a.b\\AppData\\Roaming\\Python\\Python37\\site-packages', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\win32', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\Pythonwin', 'C:\\Program Files\\JetBrains\\PyCharm 2019.3\\plugins\\python\\helpers\\pycharm_matplotlib_backend', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\IPython\\extensions', 'C:\\Users\\a.b\\PycharmProjects\\emlekezteto', 'C:/Users/a.b/PycharmProjects/emlekezteto']

在命令中:

['', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\python37.zip', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\DLLs', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\lib', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3', 'C:\\Users\\a.b\\AppData\\Roaming\\Python\\Python37\\site-packages', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\win32', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\Pythonwin']

即使我用代码中硬编码的所有 Pycharm sys.path 扩展 sys.path,它仍然会给出相同的错误。

 import os
    print (os.getcwd())
    os.chdir(r'C:\Users\a.b\PycharmProjects\emlekezteto')
    print (os.getcwd())

    import sys; print(sys.path)

sys.path.extend(['C:\\Users\\a.b\\PycharmProjects\\emlekezteto', 'C:\\Program Files\\JetBrains\\PyCharm 2019.3\\plugins\\python\\helpers\\pydev', 'C:\\Users\\a.b\\PycharmProjects\\emlekezteto', 'C:\\Program Files\\JetBrains\\PyCharm 2019.3\\plugins\\python\\helpers\\pycharm_display', 'C:\\Program Files\\JetBrains\\PyCharm 2019.3\\plugins\\python\\helpers\\third_party\\thriftpy', 'C:\\Program Files\\JetBrains\\PyCharm 2019.3\\plugins\\python\\helpers\\pydev', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\python37.zip', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\DLLs', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\lib', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3', 'C:\\Users\\a.b\\AppData\\Roaming\\Python\\Python37\\site-packages', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\win32', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\Pythonwin', 'C:\\Program Files\\JetBrains\\PyCharm 2019.3\\plugins\\python\\helpers\\pycharm_matplotlib_backend', 'C:\\Users\\a.b\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\IPython\\extensions', 'C:\\Users\\a.b\\PycharmProjects\\emlekezteto', 'C:/Users/a.b/PycharmProjects/emlekezteto'])

    print (sys.path)
    import PIL.ImageGrab
    im = PIL.ImageGrab.grab()
    im.show()

标签: pythonpython-3.xpycharmpython-imaging-librarypython-import

解决方案


如果您还没有看到它们,请查看它们,它们看起来相似/相关:

https://github.com/python-pillow/Pillow/issues/2945

PIL:DLL 加载失败:找不到指定的程序


推荐阅读