python虚拟环境随笔

一、原生python包,配置virtualenv

   1.正常原理都是pip install virtualenv,如果网速够好,能从国外的源下载过来就没什么,但我下载不下来需要更换pip源,所以找到了国内的:

      pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

     执行这条命令时报错,说没有config这个command选项,需要升级pip版本,我之前的版本太低,故:

     pip3 install pip -U  ##因为我是装3版本的,升级一下就好了,

     于是乎就是更改了某些配置文件,如下

             windows: (家目录下)C:\Users\lenovo\pip\pip.ini

             linux: (家目录下)~/.config/pip/pip.conf 

             内容:

                 [global]
                 index-url = https://pypi.tuna.tsinghua.edu.cn/simple
2.配置各自需要版本的环境:

   

         virtualenv  -p python2 env2  ###python2版本 env2环境名称

         virtualenv  -p python3.8 env3.8

          virtualenv  -p python3.6 env3.6

需要进入那个虚拟环境就source  env3.8/bin/activate或者.  env3.8/bin/activate

退出就deactivate

 

二、配置pyenv安装:

先创建一个python用户:

curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

 ~/.bashrc

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

以上是 https://github.com/pyenv/pyenv-installer 配置的如果顺利的话就装好了,但是我们在执行的时候报错,原因是需要从国外的脚本克隆下来,再执行脚本,而脚本也要从国外的git下来,很不顺利

于是乎,就自己搞了,分析脚本

首先脚本如下:

#!/usr/bin/env bash

set -e
[ -n "$PYENV_DEBUG" ] && set -x

if [ -z "$PYENV_ROOT" ]; then
  export PYENV_ROOT="${HOME}/.pyenv"
fi

colorize() {
  if [ -t 1 ]; then printf "\e[%sm%s\e[m" "$1" "$2"
  else echo -n "$2"
  fi
}

# Checks for `.pyenv` file, and suggests to remove it for installing
if [ -d "${PYENV_ROOT}" ]; then
  { echo
    colorize 1 "WARNING"
    echo ": Can not proceed with installation. Kindly remove the '${PYENV_ROOT}' directory first."
    echo
  } >&2
    exit 1
fi

failed_checkout() {
  echo "Failed to git clone $1"
  exit -1
}

checkout() {
  [ -d "$2" ] || git clone --depth 1 "$1" "$2" || failed_checkout "$1"
}

if ! command -v git 1>/dev/null 2>&1; then
  echo "pyenv: Git is not installed, can't continue." >&2
  exit 1
fi

if [ -n "${USE_GIT_URI}" ]; then
  GITHUB="git://github.com"
else
  GITHUB="https://github.com"
fi

checkout "${GITHUB}/pyenv/pyenv.git"            "${PYENV_ROOT}"
checkout "${GITHUB}/pyenv/pyenv-doctor.git"     "${PYENV_ROOT}/plugins/pyenv-doctor"
checkout "${GITHUB}/pyenv/pyenv-installer.git"  "${PYENV_ROOT}/plugins/pyenv-installer"
checkout "${GITHUB}/pyenv/pyenv-update.git"     "${PYENV_ROOT}/plugins/pyenv-update"
checkout "${GITHUB}/pyenv/pyenv-virtualenv.git" "${PYENV_ROOT}/plugins/pyenv-virtualenv"
checkout "${GITHUB}/pyenv/pyenv-which-ext.git"  "${PYENV_ROOT}/plugins/pyenv-which-ext"

if ! command -v pyenv 1>/dev/null; then
  { echo
    colorize 1 "WARNING"
    echo ": seems you still have not added 'pyenv' to the load path."
    echo
  } >&2

  { # Without args, `init` commands print installation help
    "${PYENV_ROOT}/bin/pyenv" init || true
    "${PYENV_ROOT}/bin/pyenv" virtualenv-init || true
  } >&2
fi

先下载pyenv包pyenv-install.tar.gz,

再编译:编译前安装要依赖的yum包 yum install sqlite-devel readline-devel zlib-devel bzip2-devel  gcc make patch gdbm-devel openssl-devel -y

cd /home/python/.pyenv/src

./configure

make -C

编译好了后有了pyenv

但是没有virtualenv选项,发现少了插件,于是乎就从以前国外git下下来的插件全部copy进去

/home/python/.pyenv/plugins

drwxr-xr-x. 4 python python 149 5月  24 23:12 pyenv-doctor
drwxr-xr-x. 6 python python 137 5月  24 23:12 pyenv-installer
drwxr-xr-x. 5 python python 110 5月  24 23:12 pyenv-update
drwxr-xr-x. 8 python python 187 5月  24 23:12 pyenv-virtualenv
drwxr-xr-x. 4 python python  97 5月  24 23:12 pyenv-which-ext

这个是安装本来就有的:/home/python/.pyenv/plugins

drwxr-xr-x. 6 python python 107 5月  24 22:48 python-build

再配置环境变量,~.bashrc

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

继续安装python包,自己下好放在本地cache,直接放置在~/.pyenv/cache目录下,再进行安装。此cache目录不存在,自行创建。

$ pyenv install -l
$ pyenv install 3.6.9 -vvv
$ pyenv install 3.8.8 -vvv

$ pyenv version 当前python版本,system表示当前操作系统使用的版本
$ pyenv versions 查看所有已经安装版本,*星号表示当前版本
类似git的分支似的

创建项目,可以配置虚拟环境了:
$ mkdir -p projects/test369
$ cd projects/test369/
[python@nodex test369]$ pyenv virtualenv 3.6.9 py369
[python@nodex test369]$ pyenv local py369
(py369) [python@nodex test369]$ python -V
Python 3.6.9
(py369) [python@nodex test369]$ pyenv version
py369 (set by /home/python/projects/test369/.python-version)

 
 
退出环境,选择系统的就退出了,

(py388) [python@localhost .pyenv]$ pyenv  local  system

 

删除虚拟环境:

(py388) [python@localhost .pyenv]$ pyenv  uninstall  py388 
pyenv-virtualenv: remove /home/python/.pyenv/versions/3.8.8/envs/py388? y
[python@localhost .pyenv]$ pyenv versions
pyenv: version `py388' is not installed (set by /home/python/.pyenv/.python-version)
  system
  3.6.9
  3.6.9/envs/py369
  3.8.8
  py369

这样就可以随意创建虚拟环境,切换环境,删除环境了。
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晨灵_queen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值