本文章转载自公众号 “生信码农笔记(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. 实现一个CRDT工具库——PNCounter

    PNCounter 这段代码实现了一个PNCounter,即正负计数器.PNCounter是基于GCounter实现的,GCounter是一个只增不减的计数器,而PNCounter则是在GCounte ...

  2. Little Snitch 5 - Mac 老牌防火墙安全工具软件小飞贼,监控和组织特定软件的网络连接

    一旦连接到Internet,应用程序就可以随时随地发送它们想要的任何东西.通常情况下,他们是为你做的.但有时,例如在跟踪软件.木马或其他恶意软件的情况下,它们不会.但你不会注意到任何东西,因为所有这些 ...

  3. PHP微信三方平台-序章

    一 微信三方平台准备工作 参数说明: 1.登录授权的发起页域名:提供登录授权公众号的域名地址主开发地址 2.测试公众号列表:未全网发布之前只能添加测试公众号 3.授权事件后的接收URL: 这个地址只要 ...

  4. [原创][luogu]P1217 回文质数 真·生成回文的方法

    不多说,直接看代码,都在注释里 // 中心思想: // * 1. 代入数据只想回文的一半和位数的变化 // * 例. 1001 和 101 都存的是10, 但是位数一个是4, 一个是3 // * 2. ...

  5. 19.3 对FAT的支持(harib16c)

    19.3 对FAT的支持(harib16c) 问题:可以正确显示文件开头的512字节的内容,但大于512字节的部分不能正确显示(可能会显示其他文件). 问题本质:磁盘可能将大于512字节的文件离散的保 ...

  6. PVE虚拟系统的安装

        上期有说到,会出一些具体的安装过程以及掉进去的坑.这集我就说一说PVE系统的安装. As mentioned in the previous issue, there will be some ...

  7. Vulnhub Development靶场 Walkthrough

    Recon 首先使用netdiscover进行二层Arp扫描. ┌──(kali㉿kali)-[~] └─$ sudo netdiscover -r 192.168.80.0/24 Currently ...

  8. 【Dotnet 工具箱】跨平台图表库 LiveCharts2

    你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用! LiveCharts2 LiveCharts2 是一个简单.灵活.交互式以及功能强大的跨平台图表库. ...

  9. Linux(二)文件权限和压缩

    1 搜索查找类 1.1 查找定位文件 find <搜索范围.路径> <选项> find将从指定目录下递归地遍历其各个子目录,将满足条件的文件显示在终端. 选项说明 -name: ...

  10. Nacos Prometheus Grafana

    目录 运维篇:springboot与微服务组件nacos Linux服务器部署springboot项目 Springboot启动服务指定参数 Linux & Win 监控运行中的服务 Prom ...