Python核心基础:之一:基础环境搭建

1: 环境搭建
    在Mac或者Linux中,Python是预制的。通常是2.7.X版本。下面继续配置其他常用工具。
    sudo easy_install pip 安装Pip, Pip是Python库管理工具,类似于 brew, npm, apt-get 等等
https://migege.com/post/python-pip-upgrade-all-n-aliyun-source
基于pip升级所有包
pip freeze --local | grep -v '^-e' | cut -d = -f 1  | xargs pip install -U

配置国内源(阿里云)Mac & Linux
修改 ~/.pip/pip.conf 文件(Mac & Linux 系统)或 %HOMEPATH%pippip.ini(Windows 系统),如果不存在就新建一个,把下面的内容粘进去:
[global]
trusted-host=mirrors.aliyun.com
index-url=http://mirrors.aliyun.com/pypi/simple
    
    pip install virtualenv 可以用来创建隔离的Python环境。由于Python依赖环境是需要安装的,所以经常会出现环境被搞乱的情况,隔离环境的好处在于可以随时恢复。此外,当不同项目依赖同一个库的不同版本是,隔离环境可以做到相互不影响。

2: VirtualEnv的使用
参考:http://pythonguidecn.readthedocs.io/zh/latest/dev/virtualenvs.html
  • 基本使用
        为一个工程创建一个虚拟环境
$ cd my_project_folder
$ virtualenv env_name
        virtualenv 将会在当前的目录中创建一个文件夹,包含了Python可执行文件,以及 pip 库的一份拷贝,这样就能安装其他包了。虚拟环境的名字(此例中是 env_name )可以是任意的;若省略名字将会把文件均放在当前目录。

    你可以选择使用一个Python解释器。如下命令将会使用 /usr/bin/python2.7 中的Python解释器。
$ virtualenv -p /usr/bin/python2.7 env_name
    
    要开始使用虚拟环境,其需要被激活
$ source env_name/bin/activate

    当前虚拟环境的名字会显示在提示符左侧以让你知道它是激活的。从现在起,任何你使用pip安装的包将会放在 env_name 文件夹中,与全局安装的Python隔绝开。
    之后就是像平常一样安装包了,比如
$ pip install requests

    如果你在虚拟环境中暂时完成了工作,则可以停用它,这将会回到系统默认的Python解释器,包括已安装的库也会回到默认的
$ deactivate

    要删除一个虚拟环境,只需删除它的文件夹。
rm -rf env_name 

    然后一段时间后,你可能会有很多个虚拟环境散落在系统各处,你将有可能忘记它们的名字或者位置。而使用下面会介绍的virtualenvwrapper可以规避这个问题。

  • 其他注意
    运行带 --no-site-packages 选项的 virtualenv 将不会包括全局安装的包。这可用于保持包列表干净,以防以后需要访问它。(这在 virtualenv 1.7及之后是默认行为)

    为了保持你的环境的一致性,“冷冻住(freeze)”环境包当前的状态是个好主意。要这么做,请运行
$ pip freeze > requirements.txt
    这将会创建一个 requirements.txt 文件,其中包含了当前环境中所有包及各自的版本的简单列表。你可以使用 “pip list”在不产生requirements文件的情况下,查看已安装包的列表。这将会使在以后安装相同版本的相同包变得容,这能帮助确保安装、部署和开发者之间的一致性。
$ pip install -r requirements.txt

    最后,记住在源码版本控制中排除掉虚拟环境文件夹,可在ignore的列表中加上它。

  • virtualenvwrapper
    virtualenvwrapper 提供了一系列命令使得和虚拟环境工作变得愉快许多。它把你所有的虚拟环境都放在一个地方。 virtualenvwrapper 提供环境名字的tab补全功能。当你有很多环境,并且很难记住它们的名字时,这就显得很有用。
    安装(确保 virtualenv 已经安装了)
    基本使用
$ mkvirtualenv env_name
这会在 ~/Your_Dir 中创建 env_name 文件夹。

mkvirtualenv spider
New python executable in Your_Dir/env_name/spider/bin/python
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating Your_Dir/env_name/spider/bin/predeactivate
virtualenvwrapper.user_scripts creating Your_Dir/env_name/spider/bin/postdeactivate
virtualenvwrapper.user_scripts creating Your_Dir/env_name/spider/bin/preactivate
virtualenvwrapper.user_scripts creating Your_Dir/env_name/spider/bin/postactivate
virtualenvwrapper.user_scripts creating Your_Dir/env_name/spider/bin/get_env_details
从执行日志可以看到,做了哪些相关操作
$ workon env_name 在虚拟环境上工作
$ mkproject project_name
创建一个项目,它会创建虚拟环境,并在 $PROJECT_HOME 中创建一个项目目录。
当你使用 workon project_name 时,会 cd -ed 到项目目录中。

ERROR: Set the PROJECT_HOME shell variable to the name of the directory where projects should be created.
即,为了使用这个命令,需要依赖PROJECT_HOME环境变量


mkproject tech_spider
New python executable in Your_Dir/tech_spider/bin/python
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating Your_Dir/tech_spider/bin/predeactivate
virtualenvwrapper.user_scripts creating Your_Dir/tech_spider/bin/postdeactivate
virtualenvwrapper.user_scripts creating Your_Dir/tech_spider/bin/preactivate
virtualenvwrapper.user_scripts creating Your_Dir/tech_spider/bin/postactivate
virtualenvwrapper.user_scripts creating Your_Dir/tech_spider/bin/get_env_details
Creating {$PROJECT_HOME}/tech_spider
Setting project for tech_spider to {$PROJECT_HOME}/tech_spider
可以看到,实际上创建项目的时候,单独又创建了一个运行环境。这样可以保证在各项目之间,环境是隔离的。
$ deactivate 退出你当前所在的环境
$ rmvirtualenv env_name 删除
lsvirtualenv
列举所有的环境

lsvirtualenv
spider
======
tech_spider
===========
cdvirtualenv path_name
导航到当前激活的虚拟环境的目录中,比如说这样你就能够浏览它的 site-packages 
cdvirtualenv /
实际上切到的是运行环境的根目录,而不是系统根目录
path_name 是相对于运行环境根目录的相对路径
cdsitepackages 和上面的类似,但是是直接进入到 site-packages 目录中。
lssitepackages -l 显示 site-packages 目录中的内容。 

相关内容推荐