Модуль может импортироваться через приглашение anaconda, но не через python .exe. - PullRequest
1 голос
/ 26 февраля 2020

Я довольно новичок в python и нашел что-то раздражающее, но интересное.

Моя python установка была выполнена через anaconda, и я установил prtools модуля с помощью pip. Затем я обнаружил, что модуль импортирует только когда я использую Spyder, а не при использовании VSCode. Поэтому я пошел расследовать и ударил стену. Я обнаружил, что когда я открываю приглашение anaconda и набираю python, он открывает интерпретатор python, и я могу без проблем импортировать модуль prtools. Затем я использовал where python, чтобы найти его местоположение, что дало мне два местоположения:

"E: \ ProgramData \ Anaconda3 \ python .exe"

и

"C: \ Users \ Joris \ AppData \ Local \ Microsoft \ WindowsApps \ python .exe"

При нажатии на вторую открывается только хранилище windows. И если щелкнуть первый, откроется консоль python (я думаю, что она называется). Теперь, когда я набираю import prtools Это выдает ошибку импорта:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "E:\ProgramData\Anaconda3\lib\site-packages\prtools\__init__.py", line 1, in <module>
    from prtools.dataset import *
  File "E:\ProgramData\Anaconda3\lib\site-packages\prtools\dataset.py", line 10, in <module>
    import matplotlib.pyplot as plt
  File "C:\Users\Joris\AppData\Roaming\Python\Python37\site-packages\matplotlib\pyplot.py", line 2356, in <module>
    switch_backend(rcParams["backend"])
  File "C:\Users\Joris\AppData\Roaming\Python\Python37\site-packages\matplotlib\pyplot.py", line 221, in switch_backend
    backend_mod = importlib.import_module(backend_name)
  File "E:\ProgramData\Anaconda3\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "C:\Users\Joris\AppData\Roaming\Python\Python37\site-packages\matplotlib\backends\backend_tkagg.py", line 2, in <module>
    from .backend_agg import FigureCanvasAgg
  File "C:\Users\Joris\AppData\Roaming\Python\Python37\site-packages\matplotlib\backends\backend_agg.py", line 45, in <module>
    from PIL import Image
  File "E:\ProgramData\Anaconda3\lib\site-packages\PIL\Image.py", line 69, in <module>
    from . import _imaging as core
ImportError: DLL load failed: The specified module could not be found.

У кого-нибудь есть идеи, откуда может возникнуть эта проблема?

Заранее спасибо

1 Ответ

0 голосов
/ 26 февраля 2020

У вас установлено несколько python переводчиков. Из вашего терминала вы разговариваете с другим python интерпретатором, чем когда вы выполняете свой проект через VS C, который использует другой python интерпретатор.

В вашем терминале непосредственно выполните python с помощью "E:\ProgramData\Anaconda3\python.exe" и "C:\Users\Joris\AppData\Local\Microsoft\WindowsApps\python.exe"

Вы можете заменить python этими путями.

Попробуйте найти различия с python -V, python -m site.
Последний вызов перечисляет root папок для установленных вами python модулей. В одной из этих папок вы найдете файлы python для prtools.

Так что проблема в том, что у вас есть несколько установок python, и в одной из них prtools было установлено.

Рекомендуется работать с одной версией python и использовать venv (виртуальные среды).

...