本文章转载自公众号 “生信码农笔记(ID:bio-coder)”,已获得原作者授权。

1. 不喜欢用 conda

特别不喜欢 bioconda, miniconda, Anaconda 这一类的号称安装包与环境管理系统,尤其不喜欢安装在服务器上。因为后面安装其他软件的时候很可能就会因为 conda 中的某个软件包而影响整个系统的环境。用起来一时爽,但出问题了很可能就找不到神马原因了。所以我一直不喜欢 conda 软件。但是平时开发仍然需要 python3,那怎么办呢?这里我用 virtualenv 来构建多个版本的 python 开发环境。所用的系统如下:

sw_vers
python --version
## ProductName: Mac OS X
## ProductVersion:  10.14
## BuildVersion:    18A391
## Python 2.7.10

我的系统默认自带的 python2.7.10, 我先再安装个 python3 版本。

2. 安装 python3

这里我用源码安装的方法。首先下载安装包,记得找镜像源,《配置好各种镜像源,安装速度快过你单身十几年的手速,拒绝龟速》,然后再进行自定义安装。

wget https://npm.taobao.org/mirrors/python/3.7.5/Python-3.7.5.tgz
tar -zxf Python-3.7.5.tgz
cd Python-3.7.5
#查看 README.rst
#less README.rst
#查看配置帮助
#./configure -h | less
#这里我将 python3.7.5 安装在/Volumes/LaCie/software/python/3.7.5中
#mkdir -p /Volumes/LaCie/software/python/3.7.5
./configure --prefix=/Volumes/LaCie/software/python/3.7.5/ --with-openssl=/usr/local/opt/openssl
make && make install

源码安装的一个好处就是,你可以自定义安装到指定的文件夹下,当然需要注意源码安装 python 会出现一些依赖库没有安装上,如openssl, tkinter, bz2 等,这些库可以用 root 来安装在默认路径下。当然如果你有 root 权限,你也可以用 root 去安装 python3

# on Ubuntu
sudo apt-get install python3 python3-dev

3. 安装 virtualenv 包

安装 virtualenv 包时,还是得用 root 安装,你可以指定镜像源。

sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv

4. 构建多个 python 版本的开发环境

# for python2.7.10
virtualenv -p /usr/bin/python --system-site-packages /Volumes/LaCie/software/pyenv/2.7.10
# for python3.7.5
virtualenv -p /Volumes/LaCie/software/python/3.7.5/bin/python3 /Volumes/LaCie/software/pyenv/3.7.5/
mkdir -p /Volumes/LaCie/software/pyenv/3.7.5/include
ln -s /Volumes/LaCie/software/python/3.7.5/include /Volumes/LaCie/software/pyenv/3.7.5/include/python3.7

其中 -p 用来指定 python 版本,--system-site-packages 表示是否在虚拟环境中安装系统原来就有的 python 包, 默认为 false

5. 快捷 active

#vi ~/.bashrc
#添加如下信息进去
alias 'py3env=. /Volumes/LaCie/software/pyenv/3.7.5/bin/activate'
alias 'py2env=. /Volumes/LaCie/software/pyenv/2.7.10/bin/activate'
#保存退出
source ~/.bashrc
#然后就可以使用
py3env
#or
py2env
#来快速激活

6. 测试

可以使用如下操作来进行测试。

py3env
python --version
deactive
py2env
python --version
deactive

7. 安装第三方包

只要激活进入相应版本的 python 环境中后,安装第三方包基本跟原来安装方式一样,可以用 pip 安装或者下载源码包再用 python setup.py install

# example
. /Volumes/LaCie/software/pyenv/3.7.5/bin/activate
python --version
pip install numpy pandas scipy
## Python 3.7.5
## Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
## Requirement already satisfied: numpy in /Volumes/LaCie/software/pyenv/3.7.5/lib/python3.7/site-packages (1.18.1)
## Requirement already satisfied: pandas in /Volumes/LaCie/software/pyenv/3.7.5/lib/python3.7/site-packages (1.0.1)
## Requirement already satisfied: scipy in /Volumes/LaCie/software/pyenv/3.7.5/lib/python3.7/site-packages (1.4.1)
## Requirement already satisfied: pytz>=2017.2 in /Volumes/LaCie/software/pyenv/3.7.5/lib/python3.7/site-packages (from pandas) (2019.3)
## Requirement already satisfied: python-dateutil>=2.6.1 in /Volumes/LaCie/software/pyenv/3.7.5/lib/python3.7/site-packages (from pandas) (2.8.1)
## Requirement already satisfied: six>=1.5 in /Volumes/LaCie/software/pyenv/3.7.5/lib/python3.7/site-packages (from python-dateutil>=2.6.1->pandas) (1.14.0)

友情提醒,如果需要在 shell 中使用激活环境,建议将上面的激活写到 bash 脚本中,因为 bash 无法识别 alias


往期精彩:

本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

拒绝conda, 用virtualenv构建多版本的python开发环境的更多相关文章

  1. Python开发篇——构建虚拟Python开发环境(Conda+Poetry)

    前言 之前虽略有提及Python,但是没有实际地写点料.惭愧,惭愧,所以这次先起个头,讲讲如何构建虚拟Python开发环境.相信之前看过我博客的人可能会想:博主不会又要聊聊Docker吧?放心,不会. ...

  2. Android开发学习总结(一)——搭建最新版本的Android开发环境

    Android开发学习总结(一)——搭建最新版本的Android开发环境(转) 最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Android开发虽然有所了解,但是 ...

  3. 搭建最新版本的Android开发环境

    只为成功找方法,不为失败找借口! Android开发学习总结(一)——搭建最新版本的Android开发环境 最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Andr ...

  4. 装载 | Eclipse中搭建最新版本的Android开发环境

    文章目录 准备工作 下载文件 下载JDK并配置系统变量环境 下载安装Eclipse 下载Android SDK 下载ADT插件 使用下载好的软件搭建Android开发环境 安装Android的SDK ...

  5. Python学习1:使用Aptana构建Python开发环境

    使用Aptana构建Python开发环境 下载Aptana: http://www.aptana.com/products/studio3/download http://www.newasp.net ...

  6. Python黑帽编程1.2 基于VS Code构建Python开发环境

    Python黑帽编程1.2  基于VS Code构建Python开发环境 0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Atta ...

  7. Android开发学习总结——搭建最新版本的Android开发环境

    原文出自:https://www.cnblogs.com/xdp-gacl/p/4322165.html#undefined 最近由于工作中要负责开发一款Android的App,之前都是做JavaWe ...

  8. 【转】Android开发学习总结(一)——搭建最新版本的Android开发环境

    最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Android开发虽然有所了解,但是一直没有搭建开发环境去学习,Android的更新速度比较快了,Android1. ...

  9. 在sublimetext上打造一个兼容virtualenv的web&python开发环境

    利用Sublimetext3&virtualenv 打造一个Web&Python IDE 注: 环境:window|python3;以下使用的sublimetext插件均用packag ...

  10. webdriver实用指南python版本(1)-安装开发环境

    webdriver实用指南是本人编写的系列丛书,包括ruby版.python版和java版.在线版是免费的,之前是放在我的github上,但是很多同学总不记得地址,现在转到我的博客上,方便大家阅读. ...

随机推荐

  1. 4种API性能恶化根因分析

    摘要:服务发生性能恶化时,需要投入大量人力分析性能异常根因,分析成本高,耗时长.我们提出了一种先在异常调用链内部分析候选根因,再在全局拓扑环境下对候选根因进行汇聚的二级分析方法,克服了调用链之间异常相 ...

  2. CSAPP-Data Lab

    gcc -O1 -Wall -m32 -lm -o btest bits.c btest.c decl.c tests.c In file included from btest.c:16:0: /u ...

  3. react抽离配置文件、配置@符号、调整src文件夹---配置scss、编写项目的页面结构、创建各个页面 src/views、开始路由、入口文件处修改代码、修改App.js布局文件、添加底部的导航布局、构建个人中心。。。声明式跳转路由、使用React UI库请求渲染首页数据、

    1.回顾 2.react项目的配置 react默认创建的项目配置文件在 node_modules/react-scripts 文件夹内部 2.1 抽离配置文件 cnpm run eject cnpm ...

  4. Flask快速入门day02(1、CBV使用及源码分析,2、模板用法,3、请求与响应的基本用法,4、session的使用及源码分析,5、闪现,6、请求扩展)

    目录 Flask框架 一.CBV分析 1.CBV编写视图类方法 二.CBV源码分析 1.CBV源码问题 2.补充问题 3.总结 三.模板 1.py文件 2.html页面 四.请求与响应 1.reque ...

  5. 提交docker镜像

    docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]

  6. 标准正态分布表—R语言

    正态分布是最重要的一种概率分布.正态分布概念是由德国的数学家和天文学家Moivre于1733年首次提出的,但由于德国数学家Gauss率先将其应用于天文学家研究,故正态分布又叫高斯分布.高斯这项工作对后 ...

  7. [云计算]杂谈:SaaS与PaaS的产品经理,做产品设计时有什么区别?[摘]

    本文摘自: 郝雨彤@碧岸久 于 2022-09-20在社交平台中所表达的观点. 产品性质/类型 服务领域 服务对象(受众) 核心能力 SaaS 面向具体业务 (所属行业的)业务用户 很看重对业务的理解 ...

  8. Vulnhub Development Walkthrough

    Vulnhub Development Walkthrough Recon 首先使用netdiscover进行二层Arp扫描. ┌──(kali㉿kali)-[~] └─$ sudo netdisco ...

  9. 使用 LoRA 和 Hugging Face 高效训练大语言模型

    在本文中,我们将展示如何使用 大语言模型低秩适配 (Low-Rank Adaptation of Large Language Models,LoRA) 技术在单 GPU 上微调 110 亿参数的 F ...

  10. 安装vue-lic

    vue-cli是Vue.js开发的标准工具.它简化了程序员基于webppack创建工程化的Vue项目的过程.引用自vue-cli官网上的一句话:程序员可以专注在撰写应用上,而不必花好几天去纠结webp ...