在Spyder中更改sys.path以使用正确的软件包版本

时间:2019-06-24 14:35:14

标签: python package spyder

我正在尝试使用Python解释器并从Spyder中的虚拟环境(VE)安装软件包。但是,即使解释器相同,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'

这个问题非常相似,但没有提供直接的解决方案: Same Interpreter(?), Different Package Version in 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']

似乎我需要更改路径,但是我不知道该怎么做。该线程的答案(Change the priority of python sys.path)对我不起作用,因为我找到的相似文件的内容附加在sys.path列表的末尾。其他解决方案(how do I modify the system path variable in python script?)包括将文件夹的位置附加到sys.path对象,但这对我来说也解决不了,因为顺序需要更改。

我尝试在sys.path对象的第一个位置插入“ C:\ Users \ sxa \ AppData \ Local \ conda \ conda \ envs \ sebas \ lib \ site-packages”,但这不会更改numpy的版本之后导入。

因此,有人可以提供一种解决方案来帮助您更改路径,以便首先加载正确的软件包吗?

0 个答案:

没有答案