python - 如何防止 conda virtual env pip 使用 Python 2.7 系统库?
问题描述
我在 Ubuntu 16.04 上全新安装了 Anaconda 4.5.10(Python 3.6 64 位版本)。我创建了一个py2.7
使用以下命令调用的 Python 2.7 conda env:
conda create -n py2.7 python=2.7
激活环境后which pip
返回/home/sam/anaconda3/envs/py2.7/bin/pip
。当我尝试使用 pip 安装任何东西时,我得到一个依赖错误。例如:
(py2.7) sam@sam-M3:~$ pip install numpy
/home/sam/.local/lib/python2.7/site-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.22) or chardet (2.3.0) doesn't match a supported version!
RequestsDependencyWarning)
Traceback (most recent call last):
File "/home/sam/anaconda3/envs/py2.7/bin/pip", line 7, in <module>
from pip._internal import main
File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 18, in <module>
from pip.commands import get_summaries, get_similar_commands
File "/usr/lib/python2.7/dist-packages/pip/commands/__init__.py", line 6, in <module>
from pip.commands.completion import CompletionCommand
File "/usr/lib/python2.7/dist-packages/pip/commands/completion.py", line 4, in <module>
from pip.basecommand import Command
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 19, in <module>
from pip.req import InstallRequirement, parse_requirements
File "/usr/lib/python2.7/dist-packages/pip/req/__init__.py", line 3, in <module>
from .req_install import InstallRequirement
File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 18, in <module>
from pip._vendor.distlib.markers import interpret as markers_interpret
File "/home/sam/.local/lib/python2.7/site-packages/distlib/markers.py", line 108, in <module>
DEFAULT_CONTEXT = default_context()
File "/home/sam/.local/lib/python2.7/site-packages/distlib/markers.py", line 97, in default_context
'platform_python_implementation': platform.python_implementation(),
File "/usr/lib/python2.7/platform.py", line 1481, in python_implementation
return _sys_version()[0]
File "/usr/lib/python2.7/platform.py", line 1443, in _sys_version
repr(sys_version))
ValueError: failed to parse CPython sys.version: '2.7.15 |Anaconda, Inc.| (default, May 1 2018, 23:32:55) \n[GCC 7.2.0]'
我可以看到该错误是由 Python 尝试访问 中的库引起的/usr/lib/python2.7
,但我只想访问属于 conda py2.7 env 的库。我的问题在这里得到解决:https ://stackoverflow.com/a/46672866/10274139 ,但解决方案尚不清楚。激活 conda env 后,当我列出我的环境变量时,我看不到其他 Python 路径:
(py2.7) sam@sam-M3:~$ env | grep python
CONDA_PYTHON_EXE=/home/sam/anaconda3/bin/python
另外,如果我创建一个 Python 3.7 conda env,我pip install
在该 env 中时不会出错。
解决方案
我试图重现这个问题。我没有遇到任何错误。我在 Ubuntu 18.04 上使用 conda 版本 4.5.10(Python 3.6 64 位版本)。
我运行以下命令来创建我的环境并使用 pip 安装。
conda create --name Test2 python=2.7
source activate Test2
pip install numpy
如果您运行类似的东西,请尝试更新 conda 并查看是否有帮助。
要更新 conda :
conda update conda
推荐阅读
- python - 如何在python中使用selenium从样式标签中获取url
- powershell - SharePoint Online - PowerShell PNP - 列出具有属性的文件夹
- windows - Windows 10 中 Autorun.inf 中“open=”和“action=”的替代方案
- jquery - jQuery UI 可排序刷新错误 - 如何刷新动态添加的可排序元素?
- bash - 如何使用linux删除文件扩展名并首先存储文件名
- angular - 当我尝试使用 Gitlab 运行器部署我的 Angular 项目时,出现 cp cannot stat permission denied 错误
- python - 无法让漂亮的汤与我的回调函数和正则表达式一起使用
- node.js - 无法间歇性重置 kafka 偏移量,报错“消费者组必须没有正在运行的实例,当前状态:稳定”
- sql - 一个 SQL SELECT 导致三个事务
- python - 按 ID 选择具有 2 个最近日期的所有行