Debian Jessie下保留系统包及Terminator,为spaCy安装新版numpy
解决方案:用虚拟环境隔离依赖
当然可以!virtualenv(或者Python 3自带的venv)就是专门解决这类「系统包与项目依赖版本冲突」问题的工具,完全不用动系统里的numpy,也不会影响Terminator。下面给你一步步说怎么操作:
方法一:使用virtualenv(兼容Python 2和3)
- 先安装virtualenv工具:
sudo apt-get update && sudo apt-get install virtualenv - 创建一个独立的虚拟环境(指定用Python 3,适配spaCy的新版本需求):
virtualenv -p python3 ~/spacy_env
这里~/spacy_env是虚拟环境的存放路径,你可以改成自己习惯的位置,比如~/projects/spacy_env。 - 激活虚拟环境:
source ~/spacy_env/bin/activate
激活后终端提示符会变成(spacy_env)开头,说明你现在进入了隔离的虚拟环境空间。 - 安装新版numpy和spaCy:
pip install numpy --upgradepip install spacy
这里安装的所有包只会存在于这个虚拟环境中,完全不会触碰系统级的numpy。 - 使用结束后,输入
deactivate就能退出虚拟环境,回到系统默认的Python环境。
方法二:使用Python 3自带的venv(更轻量)
如果你的系统里有Python 3.3+,可以直接用Python自带的venv,不用额外安装virtualenv:
- 创建虚拟环境:
python3 -m venv ~/spacy_env - 激活和安装包的步骤和上面完全一致,激活后安装新版numpy和spaCy即可。
为什么这能解决问题?
虚拟环境会在你指定的目录下生成一个独立的Python运行环境,包含专属的pip工具和包存储目录。所有在虚拟环境内安装、升级的包都是完全隔离的,不会修改系统级的Python依赖——也就是说,Terminator依赖的系统numpy丝毫不会受到影响,你既可以保留系统的旧版本numpy,又能给spaCy用上最新的版本,完美匹配你的需求。
内容的提问来源于stack exchange,提问作者Eamonn Kenny
相关产品推荐
相关产品推荐

