Can run script from pycharm, but not from Terminal. ImportError: DLL load failed: The specified module could not be found

Can run script from pycharm, but not from Terminal. ImportError: DLL load failed: The specified module could not be found

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。 sys.path 不同,因为 Pycharm:

['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()

如果你还没有看到它们,请检查一下,它们看起来 similar/relevant:

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

这个问题着实让我烦恼了一阵子。 我 运行 通常在 Pycharm 中编写我的脚本。但是当我在终端运行ned它时它报告了这个错误。我导入的导致此错误的 2 个包是:

from ortools.linear_solver import pywraplp 
from pyscipopt import Model, quicksum

我在线尝试了所有解决方案,但其中 none 行得通。最后我通过在导入上面的包之前导入 pandas 解决了这个问题:

import pandas as pd

他们我可以 运行 在终端中正常运行脚本。这对我有用。