Невозможно импортировать модуль Python в сценарии, но можно в командной строке - PullRequest
0 голосов
/ 27 июня 2018

У меня установлена ​​программа scipy для чтения данных из файла .mat. Когда я нахожусь в Python в командной строке, я могу набрать следующее и получить желаемое значение:

Командная строка

>>> import scipy
>>> import scipy.io
>>> from scipy.io import loadmat
>>> x=loadmat('C:\My websites\Rooftop PV.mat')
>>> size = x['component']['Size'][0][0][0][0]
>>> print(size)
150
>>> import sys
>>> sys.executable
'C:\\...\\Documents\\anaconda3\\python.exe'

Однако, когда я запускаю скрипт .py ...

.py script

import sys
print(sys.executable)
import scipy
import scipy.io
from scipy.io import loadmat

x = loadmat('C:\My websites\Rooftop PV.mat')
size = x['component']['Size'][0][0][0][0]
print(size)

невозможно найти модуль scipy.io, выдающий эту ошибку:

Ошибка:

 C:\Python\pythonw.exe
 File "C:\Python\testmatfile.py", line 4, in <module>
     import scipy.io
 ModuleNotFoundError: No module named 'scipy.io'

Есть идеи, почему это может быть? Спасибо!

1 Ответ

0 голосов
/ 27 июня 2018

Как видите, используются два разных исполняемых файла python. C:\\...\\Documents\\anaconda3\\python.exe используется в первом случае, а C:\Python\pythonw.exe используется во втором случае. У вас установлена ​​библиотека для первого исполняемого файла Python (в соответствующий путь), поэтому вам просто нужно запустить

C:\Python\pythonw.exe -m pip install <lib_name>

команда для установки библиотеки в путь, связанный со вторым исполняемым файлом. Вы также можете использовать virtualenv или docker для запуска вашего сценария в изолированном окружении со всеми необходимыми зависимостями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...