一、原生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
这样就可以随意创建虚拟环境,切换环境,删除环境了。