简体   繁体   中英

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

Works in Pycharm, does not form command line. Tried many things, can be seen below, not sure what else to change.

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.

Things I checked:

1. Pycharm interpreter is same. In Pycharm, and command line:

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

2. Even when working directory is the same, ie putting below thing in code, still same issue. By default this is working directory in Pycharm when running form there.

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

3. The sys.path was different, for 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']

in cmd:

['', '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']

Even when I extend sys.path with all the Pycharm sys.path hardcoded in code, it still gives the same error.

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

This problem really annoyed me for a while. I runned my script normally in Pycharm. But it reported this error when I runned it in terminal. The 2 packages which I imported that caused this error are:

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

I tried all solutions online, but none of them worked. Finally I solved it by importing pandas before importing the above packages:

import pandas as pd

Them I can run the script normally in terminal. This works for me.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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