python需要独显吗_配置独立于系统的PYTHON环境

配置独立于系统的PYTHON环境

python 当前用户包

一种解决方案是在利用本机的python环境的基础上,将python的包安装在当前user的.local文件夹下

一共有两种方式来实现pip的时候安装到当前user

设置pip配置文件 pip.conf

一种是在~/.pip文件夹下的pip配置文件pip.conf中设置

加入

[install]

install-option=--prefix=~/.local

相当于每次在执行

# pip install package 命令的时候在 install 后面加 --prefix 参数指定 install 的路径

pip install --prefix=~/.local package

Tips:

python import 查找python package的流程

我的理解 TODO

参考资料 python import 机制

pip 参数

另一种实现是直接在pip install的时候加一个 --user, 当然这个也可以写到pip.conf配置文件中去

pip install --user package

PYTHON 虚拟环境设置

因为在实际工作中经常会遇到创建PYTHON虚拟环境的需求,每次都得去Google,很不方便,这里特意整理一下PYTHON虚拟环境创建的相关资料。

目录:

虚拟环境有什么好处

常见的创建虚拟环境的工具

virtualenv

Anaconda

虚拟环境配置的一些小trick

虚拟环境 Cons

有时候我们可能手上会有多个python 项目,每个项目使用不同版本的python(python2.7 python3.5 etc.),并且每个python对应于不同的包依赖,还有一种情况是我们可能没有root权限,或者多人共用一个服务器,我们想自己创建一个独立于其他用户的python环境。

这个时候python虚拟环境机制就显得很有用了,python虚拟环境主要有以下好处:

能够创建一个独立的python环境,和其他用户的设置都不冲突

能够为每一个项目单独维护一个环境,适应不同的需求

常见的创建虚拟环境的工具

virtualenv

virtualenv is a tool to create isolated Python environments.

virtualenv 主要解决了以下三个问题:

不同的项目需要同一个python package的不同版本,无法在/usr/lib/python/site-packages文件夹下面同时维护两个不同版本(eg. tensorflow 1.0 and tensorflow 1.5)

需要为某个项目永久(或者长时间)保留一个运行环境,(保持本机的主环境长时间不变动不现实,无意识的更新或者其他项目需要更新)

在服务器的使用中,普通用户没有权限访问/usr/lib/python/site-packages文件夹,无法修改主机python环境

virtualenv 原理的一个说明:

virtualenv是如何创建“独立”的Python运行环境的呢?

原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。

安装virtualenv

virtualenv 的安装方式很多,可以通过pip安装,也可以直接从git上下载,通过源码安装,还可以用easy_install安装。

这里只介绍使用pip安装的方法

安装到全局

[sudo] pip install virtualenv

安装到当前用户

export PYTHONUSERBASE=$HOME

pip install --user virtualenv

virtualenv 的简单使用

virtualenv 主要几个指令是

创建env

virtualenv env_name --python=python3.x

# virtualenv 会在当前文件夹下创建一个名为env_name的文件夹作为虚拟环境env_name的目录,并且将python3.x作为新创建环境的python解释器

进入env

# 想要使用env,需要先active当前环境,命令为:

source env_path/bin/activate #Tips: 可以在~/.bash_aliases文件中设定一个alias,方便直接进入env

使用完env以后,可以通过deactivate退出当前env

如果要删除某个env,只需要 rm -r env_dir,删除对应的文件夹就可以了

还有一些virtualenv的扩展包,进一步集成了virtualenv的功能:virtualenvwrapper (能够在一个文件夹下统一管理所有的env)

其他几个小trick

virtualenv 默认不包含全局安装的python 包

可以在env里面通过pip freeze > requirements.txt 来获取当前环境所有的python package的信息。这样在下一次创建环境的时候就可以通过pip install -r requirements.txt直接快速安装所有依赖包

Anaconda is the most popular python data science platform. (Introduced by the Anaconda website)

Anaconda Python 是专注于数据分析的Python发行版本,包含了conda、python等190多个科学包及其依赖项。

Anaconda分离python环境的原理和virtualenv基本一致,都是通过创建一个独立的文件夹保存python环境。Anaconda相较于virtualenv不同的地方主要有以下几点:

Anaconda是一个综合的python工具,包括python基础解释器,IPython,CPython,JupiterBook和一个Python IDE Spyder(Spyder是一个拥有和Matlab相似的界面的Python IDE)

Anaconda配置python环境的时候只需要指定python版本,而不需要本机提前安装(这相较于virtualenv是一个很大的优势)

Anaconda基于Conda来管理python包和环境。

Anaconda 常用指令

# 创建新环境

conda create -n env_name python=X.X #创建名为env_name,解释器为pythonx.x的python虚拟环境

# env_name文件可以在Anaconda安装目录envs文件下找到。

# 进入python环境

# Linux

source activate env_name

# Windows

activate env_name

# 进入python环境以后的一些命令

conda list # 查看当前环境安装了那些包

conda env list

conda info -e

# 查看当前存在那些虚拟环境

conda install package # 安装第三方python包

# 也可以直接使用pip命令安装

pip install package

# 删除环境中的某个包

conda remove package

pip uninstall package

# 退出当前虚拟环境

source deactivate # Linux

deactivate # Windows

# 删除虚拟环境

conda remove -n env_name

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值