Git 我的虚拟环境可以访问全局包,甚至可以指定不访问
作为Flask项目的一部分,我创建了一个python虚拟环境。尽管指定我不希望venv访问我的机器包,但当venv中缺少包时,它会这样做 我尝试了Git 我的虚拟环境可以访问全局包,甚至可以指定不访问,git,flask,virtualenv,python-3.6,ubuntu-18.04,Git,Flask,Virtualenv,Python 3.6,Ubuntu 18.04,作为Flask项目的一部分,我创建了一个python虚拟环境。尽管指定我不希望venv访问我的机器包,但当venv中缺少包时,它会这样做 我尝试了virtualenv,有没有——无站点包说明。我还在我的venv python包(venv/lib/python3.6/no-global-site-packages.txt)中创建了一个名为no-global-site-packages.txt的空白文本文件 我的$PYTHONPATH为空。我最初的venv是git回购,但为了解决这个问题,我尝试了非
virtualenv
,有没有——无站点包
说明。我还在我的venv python包(venv/lib/python3.6/no-global-site-packages.txt
)中创建了一个名为no-global-site-packages.txt
的空白文本文件
我的$PYTHONPATH
为空。我最初的venv是git回购,但为了解决这个问题,我尝试了非git文件夹,结果也一样
激活我的维珍venv后,我得到:
which python
>> /venv/bin/python
which pip
>> /venv/bin/pip
这是我所期望的,但我得到:
which flask
>> /usr/bin/flask
而不是因为venv中未安装烧瓶而发生碰撞
我看到了这个问题,但提议的解决方案中没有一个奏效:
有人知道这里有什么问题吗?我遗漏了什么?venv中是否安装了
flask
?从问题我看不出您有权访问全局站点包
,您只表明您已在全局安装了flask
,并且其脚本(不是包)是可访问的,因为它位于$PATH
中。如果您没有在venv中安装flask
,则系统无法访问脚本。当您在venv中安装flask
时,它将覆盖全局安装的flask
。即使可以运行/usr/bin/flask
,但这并不意味着它可以访问您的VirtualNV-它可以拥有shebang/usr/bin/python
,并且python使用全局软件包。测试virtualenv是否与全局包分离的唯一方法是测试包:python-c“import flask”
;如果未安装flask
,则命令将失败。