繁体   English   中英

如何从我的 virtualenv 中获取 pip 以安装到 virtualenv

[英]How do I get pip from my virtualenv to install to the virtualenv

我不确定这些成分中有多少重要,但我尝试运行我很久以前写的 bash 脚本来创建 virtualenv 并激活它。 我将其更改为使用 python3 作为 python 版本。 但是,这似乎破坏了 virtualenv 并尝试将 pip 安装到全局站点包中。

如何从 python3 virtualenv 获取 pip 以安装到该 virtualenv 中?

PYTHON=${PYTHON:-python3}
VENV_DIR="bld_tests_env"
$PYTHON -m virtualenv --python=$PYTHON $VENV_DIR

set -x
source $VENV_DIR/bin/activate
which -a python
which -a pip
ls -l `which pip`
pip --version

给我以下 output

+ which -a python
<code path>/staging/bld_tests_env/bin/python
/usr/local/bin/python
/usr/bin/python
+ which -a pip
<code path>/staging/bld_tests_env/bin/pip
/usr/local/bin/pip
+ ls -l `which pip`
<code path>/staging/bld_tests_env/bin/pip
+ pip --version
pip 20.1 from /usr/local/lib/python3.5/site-packages/pip (python 3.5)

谁能向我解释为什么在激活 virtualenv 后调用 pip 仍然引用全局安装?

我没有解释为什么 virtualenv 如此糟糕,但我确实了解到 venv 是一个内置模块,因为 python 3.3 https://docs.python.org/3/library/venv.html

如果我从

$PYTHON -m virtualenv --python=$PYTHON $VENV_DIR

$PYTHON -m venv $VENV_DIR

然后一切似乎都按预期工作。

我的猜测是 virtualenv 在 python3 上没有得到正确支持并且没有人注意到,因为没有人费心去使用 pip package。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM