Изменение sys.path в Spyder для использования правильных версий пакетов - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь использовать интерпретатор 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, которая импортируется впоследствии.

Может ли кто-нибудь помочь с решением, которое изменило бы путь, чтобы в первую очередь загружались нужные пакеты?

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