python多版本并存与pip的使用

在开始学习django之前, 需要准备django调试运行的环境.

python环境.

python非dmg安装方法.
1.下载压缩包
2.解压缩到指定目录
3.修改环境变量.

先来看看mac系统默认的python环境是什么样的
/usr/bin/python
默认的python执行文件位于上面的目录

运行test.py脚本
python test.py
这次这次试试下面这条命令
/usr/bin/python test.py
运行发现效果是一样的. (不一样的同学应该改过环境变量)
这是因为 python 命令实际运行的时候被替换为 /usr/bin/python
会发生这样的替换是因为环境变量这个东西的存在!!!

mac及ubuntu系统环境变量简介.

mac系统环境变量

环境: mac bash shell

bashshell.png

环境变量加载顺序

/etc/profile 
/etc/paths 
~/.bash_profile 
~/.bash_login 
~/.profile 
~/.bashrc

特殊.
当.bash_profile不存在时才会依次读之后的文件, 如果.bash_profile存在后面的不会被读取.

etc目录下的都是全局配置. 不建议修改.

~/.bash_profile 代表当前用户根目录下的.bash_profile文件, 我一般会修改这个文件. 如果此文件不存在可以手动创建 注意文件名".bash_profile"
修改此文件即修改当前用户环境变量. 修改完毕重启生效.
也可以运行 source .bash_profile 立即生效.

ubuntu 系统环境变量

/etc/profile
/etc/bash.bashrc
/etc/environment
~/.profile
~/.bashrc
~/.bash_profile
~/.bash_environment

/etc/作用域全局
~/表示当前用户根目录
我一般修改 ~/.bashrc文件来修改环境变量

下面是ubuntu系统下我的.bashrc文件中的一段代码.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh

添加新的环境变量 需要在此文件底部增加代码.

如果文件不存在可以手动创建!!!!!!! 注意目录和文件名.

一个环境变量的例子
export PATH="/Users/zhaodan/anaconda/bin:$PATH"

mac系统下 .bash_profile中添加上面的一行,

/Users/zhaodan/anaconda/bin 此目录是我的python环境目录,此目录下有python文件(这里的python版本是python3.4)

有了上面的环境变量终端中执行

python test.py

最终执行的是

/Users/zhaodan/anaconda/bin/python test.py

如果修改了环境变量却发现没有效果.
1.source ~/.bash_profile
2.检查语句.
3.检查环境变量文件的执行顺序, 后执行的会覆盖前面执行的.
4.检查文件中语句的位置. 同样的修改语句. 文件底部的语句会覆盖文件头部的语句.
5.重启电脑

pip与依赖

了解了python目录和环境变量, 就明白不同python版本其实就是不同的文件路径而已.
而终端调用python命令时使用的究竟是哪个python版本, 取决于环境变量的配置.

有了Python语言环境,如何安装各种框架和包呢?

iOS中由于苹果提供了iOS SDK. 里面包含了大部分我们用到的框架.例如UIKit, Fundation, AVFundation等等. 直接import即可.

上面我们安装了python, 但是这个python指的仅仅是一门语言. 它带了一些库但是他们的数量相比iOS SDK远远不如.

所以我们需要安装很多其他的库, 我使用pip安装它们.

例如安装django

pip install django

这些包会被安装到site-packages目录下

~/.virtualenvs/face/lib/python3.5/site-packages

上面是一个site-packages目录的例子.

默认的pip源下载速度比较慢推荐修改pip源, 就像iOS开发中我们安装cocoapods需要修改ruby源.

mac系统下
命令如下

cd ~
ls -a
此时如果发现目录中有.pip 则 cd .pip
如果没有则 mkdir .pip   然后 cd .pip

vim pip.conf
在vim编辑器中修改文件为


[global]

index-url = http://mirrors.aliyun.com/pypi/simple/

[install]

trusted-host=mirrors.aliyun.com


//这是阿里云的源 速度不错.


virtualenv

virtualenv 是用来管理多个python开发环境的.
virtualenvwrapper 使用比较方便的使用virtualenv

当你的操作系统已经安装了python环境,
此时通过pip 安装上面两个工具.

pip install virtualenv
pip install virtualenvwrapper

virtualenvwrapper 需要添加环境变量
修改.bash_profile 添加下面三行代码

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh

source ~/.bash_profile
应用环境变量

此时可以使用如下命令添加,删除,应用,退出不同的python环境

mkvirtualenv xxx:创建运行环境

workon xxx: 工作在xxx 

deactivate: 退出终端环境

其它的:

rmvirtualenv ENV:删除运行环境ENV

lsvirtualenv: 列出可用的运行环境

lssitepackages: 列出当前环境安装了的包

创建的环境是独立的,互不干扰,无需sudo权限即可使用 pip 来进行包的管理。

创建一个python3.5的环境的例子
首先python官网下载python3.5并安装

mkvirtualenv -p /usr/local/bin/python3.5 python35 --no-site-packages

此时创建了一个名为python35的python3.5环境. 并且仅仅安装了这三个包
pip (9.0.1)
setuptools (36.6.0)
wheel (0.30.0)

需要进入python35环境时终端输入

workon python35

退出

deactivate

之前有说过不同的python环境其实只是对应不同的python路径. 那么这个新建的python环境路径如下.

/Users/zhaodan/.virtualenvs/python35/bin/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容