Я пытаюсь использовать интерпретатор Python и установленные пакеты из виртуальной среды (VE) в Spyder. Однако Spyder использует разные версии пакетов, хотя интерпретатор один и тот же.
Я создал VE как клон существующей среды и после активации VE установил различные пакеты. В Spyder я установил для интерпретатора следующий путь: C: \ Users \ sxa \ AppData \ Local \ conda \ conda \ envs \ sebas \ python.exe
Однако при сравнении пути интерпретатора и версий пакетов в Spyder и Python, запускаемых через командную строку, появляются несоответствия.
Запуск в Spyder
import sys
import numpy as np
sys.executable
'C:\\Users\\sxa\\AppData\\Local\\conda\\conda\\envs\\sebas\\pythonw.exe'
np.__version__
'1.13.3'
Запуск в Python через командную строку
import sys
import numpy as np
sys.executable
'C:\\Users\\sxa\\AppData\\Local\\conda\\conda\\envs\\sebas\\python.exe'
np.__version__
'1.16.0'
Этот вопрос очень похож, но не дает прямого решения:
Тот же интерпретатор (?), Другая версия пакета в Spyder
Один из комментариев действительно указывает на то, где, по-моему, заключается проблема. Вывод sys.path для обоих отличается. В Spyder путь указывает на папки с другими установками пакетов, прежде чем он ссылается на нужную папку:
'C:\\Anaconda\\envs\\py35\\lib\\site-packages',
'C:\\Anaconda\\envs\\py35\\lib\\site-packages\\spyder',
'C:\\Users\\sxa\\AppData\\Local\\conda\\conda\\envs\\sebastest2',
'C:\\Users\\sxa\\AppData\\Local\\conda\\conda\\envs\\sebas\\python35.zip',
'C:\\Users\\sxa\\AppData\\Local\\conda\\conda\\envs\\sebas\\DLLs',
'C:\\Users\\sxa\\AppData\\Local\\conda\\conda\\envs\\sebas\\lib',
'C:\\Users\\sxa\\AppData\\Local\\conda\\conda\\envs\\sebas',
'C:\\Users\\sxa\\AppData\\Roaming\\Python\\Python35\\site-packages',
'C:\\Users\\sxa\\AppData\\Local\\conda\\conda\\envs\\sebas\\lib\\site-packages',
'C:\\Users\\sxa\\AppData\\Local\\conda\\conda\\envs\\sebas\\lib\\site-packages\\Babel-2.5.0-py3.5.egg',
'C:\\Users\\sxa\\AppData\\Local\\conda\\conda\\envs\\sebas\\lib\\site-packages\\Mako-1.0.7-py3.5.egg',
'C:\\Users\\sxa\\AppData\\Local\\conda\\conda\\envs\\sebas\\lib\\site-packages\\xgboost-0.6-py3.5.egg',
'C:\\Users\\sxa\\AppData\\Local\\conda\\conda\\envs\\sebas\\lib\\site-packages\\fastrlock-0.3-py3.5-win-amd64.egg',
'C:\\Users\\sxa\\AppData\\Local\\conda\\conda\\envs\\sebas\\lib\\site-packages\\cupy-3.0.0a1-py3.5-win-amd64.egg',
'C:\\Users\\sxa\\AppData\\Local\\conda\\conda\\envs\\sebas\\lib\\site-packages\\win32',
'C:\\Users\\sxa\\AppData\\Local\\conda\\conda\\envs\\sebas\\lib\\site-packages\\win32\\lib',
'C:\\Users\\sxa\\AppData\\Local\\conda\\conda\\envs\\sebas\\lib\\site-packages\\Pythonwin',
'C:\\Anaconda\\envs\\py35\\lib\\site-packages\\IPython\\extensions',
'C:\\Users\\sxa\\.ipython']
Кажется, мне нужно изменить путь, но я не могу понять, как это сделать. Ответ этого потока ( Изменить приоритет python sys.path ) не работает для меня, так как содержимое похожих файлов, которые я нахожу, добавляется в конец списка sys.path. Другие решения ( как изменить системную переменную пути в скрипте Python? ) включают добавление местоположения папки к объекту sys.path, но это также не решает меня, так как порядок должен измениться.
Я попытался вставить 'C: \ Users \ sxa \ AppData \ Local \ conda \ conda \ envs \ sebas \ lib \ site-packages' в первую позицию объекта sys.path, но это не меняет версию numpy, которая импортируется впоследствии.
Может ли кто-нибудь помочь с решением, которое изменило бы путь, чтобы в первую очередь загружались нужные пакеты?