这篇文章已过时,不要再参考,例如删除python会导致一些linux系统的yum无法使用,没有yum,安装git和很多软件都很麻烦!!!!
pyenv介绍
pyvenv 与virtualenv 功能和用法类似。 不同点在于: pyvenv 只支持Python 3.3 及更高版本,而virtualenv 同时支持Python 2.x 和Python 3.x; pyvenv 是Python 3.x 自带的工具,不需要安装,而virtualenv 是第三方工具,需要安装。
目前感觉安装 virtualenv 是主流方案,后续更新virtualenv的安装和使用方法
问题:在本机能正常执行的脚本,放到服务器报:
| Module Not Found Error: No module named |
ctypes是系统自带的外部函数库,一般不需要单独安装,linux服务器自带有python2.7的版本,直接使用python命令,import ctypes是正常的。
但使用python3,import ctypes会报这个错误。
说明python3没安装好,需要卸载重新安装。
卸载
- 首先强制删除已安装的程序及其关联
| [root@spider1 bin]# rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps |
- 然后删除所有残余文件,xargs表示允许你对输出执行其他某些命令
| [root@spider1 bin]# whereis python |xargs rm -frv |
- 最后验证删除结果,返回无结果表示完全删除
| [root@spider1 bin]# whereis python |
安装
安装可以直接使用官方推荐的命令一键安装:
| $curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash |
我这里因为没有FQ,下载安装包会超时,只能替换源地址。
1. 拷贝下面的代码到shell中创建一个install.sh的文件
| #!/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 |
| } |
| |
| |
| 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 |
| GITHUB="https://gitee.com" |
| checkout "${GITHUB}/ibuki_fuuko/pyenv.git" "${PYENV_ROOT}" |
| checkout "${GITHUB}/codeseth/pyenv-doctor.git" "${PYENV_ROOT}/plugins/pyenv-doctor" |
| checkout "${GITHUB}/yuebanlaosiji/pyenv-installer.git" "${PYENV_ROOT}/plugins/pyenv-installer" |
| checkout "${GITHUB}/codeseth/pyenv-update.git" "${PYENV_ROOT}/plugins/pyenv-update" |
| checkout "${GITHUB}/unicode233/pyenv-virtualenv.git" "${PYENV_ROOT}/plugins/pyenv-virtualenv" |
| checkout "${GITHUB}/mouday/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 |
| |
| { |
| "${PYENV_ROOT}/bin/pyenv" init || true |
| "${PYENV_ROOT}/bin/pyenv" virtualenv-init || true |
| } >&2 |
| fi |
2. 执行这个sh,linux中输入以下命令设置环境变量
| echo 'export PATH="/home/python/.pyenv/bin:$PATH"' >> ~/.bash_profile |
| echo 'eval "$(pyenv init -)"' >> ~/.bash_profile |
| echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile |
| source ~/.bash_profile |
- 查看pyenv版本
pyenv -v
- 更新pyenv
pyenv update
3. 安装python
| |
| pyenv install --list |
| |
| pyenv install 3.7.9 |
| |
| pyenv versions |
| |
| pyenv version |
- 使用pyenv global 配置当前用户的系统使用的python版本
| $ pyenv global 3.6.4 |
| $ pyenv versions |
| system |
| 3.5.4 |
| * 3.6.4 (set by /home/python/.pyenv/version) |
| $ python -V |
| Python 3.6.4 |
- 使用pyenv shelll 配置当前shell的python版本,退出shell则失效
- 使用pyenv local 配置所在项目(目录)的python版本
pyenv 安装 Python 使用国内源
用过 pyenv 的朋友应该都被它安装 Python 版本时巨慢的速度折磨过,究其原因还是国内访问官网的源速度上不去,所幸像其他软件的依赖包一样 Python 也有很多国内源。
这里我使用的是淘宝的源 https://npm.taobao.org/mirrors/python/
pyenv 没有配置源地址的地方,不过我们可以变通一下。
它安装 Python 的流程就是先将把包下载到 ~/.pyenv/cache 目录,然后在进行安装,慢也就慢在下载的这个过程。
先手动将包下载到指定目录,在执行 pyenv install 即可。
精简一下 shell 命令如下
| v=3.8.5; curl -L https://npm.taobao.org/mirrors/python/$v/Python-$v.tar.xz -o ~/.pyenv/cache/Python-$v.tar.xz; pyenv install $v |
也可以创建一个方法,放到 ~/.bashrc 文件中,以后方便直接使用
| function pyinstall() { |
| v=$1 |
| echo '准备按照 Python' $v |
| curl -L https://npm.taobao.org/mirrors/python/$v/Python-$v.tar.xz -o ~/.pyenv/cache/Python-$v.tar.xz |
| pyenv install $v |
| } |
其他坑
1. pyenv global指定版本后, python命令不可用
将 pyenv init 脚本从 .bash_profile 移动到 .bashrc。
| |
| |
| export PATH="/root/.pyenv/bin:$PATH" |
| eval "$(pyenv init -)" |
| eval "$(pyenv virtualenv-init -)" |
| |
| |
| alias python="$(pyenv which python)" |
| alias pip="$(pyenv which pip)" |
source ~/.bashrc后,python可正常执行。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
2015-10-31 查看IIS连接数