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

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

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

2: VirtualEnv的使用
  • 基本使用
        为一个工程创建一个虚拟环境
$ 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 已经安装了)
$ pip install virtualenvwrapper
$ export WORKON_HOME=~/Your_Dir
$ echo $WORKON_HOME
$ source /usr/local/bin/virtualenvwrapper.sh

为了保证每次打开命令行都可以用,只需要把
export WORKON_HOME=~/PyEnv
source ~/Library/Python/2.7/bin/virtualenvwrapper.sh
加入到~/.bash_profile(用zsh的加入.zshrc),就无需重复初始化了
在新版本的Mac上(版本超过El Capitan)安装会有权限问题

Found existing installation: six 1.4.1
    DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
    Uninstalling six-1.4.1:
 。。。。。
OSError: [Errno 1] Operation not permitted: '/tmp/pip-mwBYXk-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'

各种的root都不可以,想到了一个粗暴的方式,直接针对share进行chmod的授权。  结果… 提示root也是没有权限操作系统的目录。   我突然发觉肯定是新版的osx有了某种机制制止我们直接的修改/System文档数据。
google了后,发现新系统有个叫sip的机制。 你暂时不能直接在终端进行 csrutil disable 会出现错误提示,引导你去mac osx的恢复模式进行操作。
由于El Capitan引入了SIP机制(System Integrity Protection),默认下系统启用SIP系统完整性保护机制,无论是对于硬盘还是运行时的进程限制对系统目录的写操作。

除了上面的方法之外,还可以选择将环境安装在当前用户下,这样其他用户就没法使用了。如果Mac一般是一个人用,那么问题也不大。
pip install virtualenvwrapper  —user
不过,此时source /usr/local/bin/virtualenvwrapper.sh就不好用了,因为安装位置已经改变。
新的位置在~/ Library/Python/2.7/ bin/virtualenvwrapper.sh
注:当你不知道装到哪里的时候,再装一次,提示就会告诉你在XXX文件夹下已经有满足条件的包了。文件就找到了。
    基本使用

$ 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 目录中的内容。 


2: 项目开发和管理
    1: 开发工具推荐使用PyCharm:  http://www.jetbrains.com/pycharm/download/
    
     2:为了更好的学习项目结构,先从 github 上下载小巧而成熟的开源项目 flask:
git clone https://github.com/pallets/flask.git
    
    3:用PyCharm打开项目
    
    可以看到是一个非常典型的IDE界面。由于我们配置了VirtualEnv, 所以需要配置环境:
    PyCharm Community Edition -> Preferences -> Project:flask ->Project Interpreter -> Add Local
     
    设置环境变量的方式是找到虚拟环境文件夹下的 bin 目录,并选择 python 主程序。
    
    
    
    4: 除了基本的Python执行环境之外,还需要管理项目所需的包依赖。如果没有安装依赖,那么在打开源码时会在编辑器中报出引用异常。
    
    有两种方法完成安装:第一种pip 可以安装的项目通过pip安装,则过程中自动安装相关依赖;第二种,通常在源代码的根目录下有一份requirements.txt文件,这里描述了该项目需要哪些包。下面看两种如何操作:
$workon your_env #因为我们使用了虚拟环境,所以需要先切到虚拟环境

a: pip install flask #这样安装之后,实际上就是在当前环境的 site-packages 中安装了这个项目,那么连带的也安装了相关的依赖。可以切到虚拟环境的所在目录去验证一下
这样安装实际上相当于多装了一份源代码。因为除了 site-packages 中这个通过 pip 安装的之外,我们之前通过 git 命令克隆了一份代码在项目文件夹下。

b: 通过requirements.txt来安装。
在当前的virtualenv中将目录切到项目文件夹,完成了这个之后,会发现命令行显示是这样的。
表示,当前在 spider 这个虚拟环境之中,同时当前目录为 flask 项目的根目录。由于我们的 flask 是github上下载的,当前处于master分支,所以会显示出 git:(master)。
在项目文件夹下找到 requirements.txt
pip install -r requirements.txt

实际上,flask是没有这个 requirements.txt 的。所以不能通过这个方式来完成依赖安装,只能用上述的方式a。但是有一个 test-requirements.txt,可以执行 pip install -r 体验一下。 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值