介绍
当涉及到使用Python,特别是在应用程序开发领域,有一些工具,你会看到经常在不同的地方或开源代码。 尽管极为常用,但遗憾的是,有时难以掌握一本好的手册来逐步介绍每一步,这对于熟悉这些重要且需要的工具是至关重要的。
在这篇DigitalOcean文章中,我们的目标是不仅填写基础知识,而且介绍流行的Python工具和项目的逻辑,因为我们在现实生活中使用它们。 我们将开始下载和安装一些公共库,设置和使用虚拟环境(使用virtualenv),以及管理软件包以开发和生产自己的应用程序。
本文面向初学者以及那些寻求更深入的知识的人。 如果您想要查看和了解更多,请随时在下面的评论部分提出建议。
Python在CentOS上
请记住,如果您使用的是CentOS / RHEL系统,您应该避免使用操作系统附带的默认Python解释器。 相反,你应该选择自己安装Python。
如果你还没有这样做了,并想了解如何操作,请参阅我们的教程: 如何设置的Python 2.7.6和3.3.3在CentOS 6.4才开始。
同样地,为了与定制Python安装CentOS的安装PIP和VIRTUALENV,你可以按照这篇文章的说明。
Python和包
虽然Python应用程序可以由一个单一的文件的,通常它们是由一系列的功能,对象(类),方便的工具,当然,在多个文件(S)传播变量,置于其内 的模块 。 这些模块共同组成了被称为一个包 。
安装包的传统方式包括首先发现它然后下载。 这听起来很柔软,简单,因为它实际上是像在Python很多东西- 但它并不完美 。
当文件准备就绪,解压后,使用的distutils模块,可以通过调用安装setup.py
:
包装的安装示例:
# Example: cd [package name]
cd a_package
python setup.py install
的distutils(配电公司)是用于代码包装和分配一个工具集。 它默认是使用Python发货(即包含在标准库 )。
尽管上面解释程序的简单性,它是没有用的,如果从安装抽象的挑战的过程中存在着其他地方: 发现并管理它们 。 这是通过工具进行包管理的地方 - 带来了几个好处,如:
- 卸载(如
pip uninstall package_x
) - 版本控制(如
pip install django==x
) - 和自动依赖管理(因为包可以依赖于其他包)。
软件包管理
Python中的包可以是工具,库,框架和应用程序。 鉴于普及和语言的优美,也有可用的软件包,你可以利用你自己的项目数以万计。
软件包管理工具
两种最常见的Python包经理PIP 易 INSTALL_。 它们都旨在帮助用户完成以下任务:
- 下载,安装和卸载
- 建造
- 管理Python包等等
他们都可能出现由外而这个概念在公共库的setuptools增加他们的共同依赖做同样的事情。
然而,在这种情况下,它是隐藏的眼睛,使差异 - 以及很多。
pip vs easy_install
该任务创建的第一个工具是easy_install的 。 虽然与手工操作相比,它是一种缓解和乐趣,但随着时间的推移,它已被证明在某些方面是有问题的。 创建该理由画中画 ,另一包管理器的发展。
点子为easy_install的更换,其中在其前身带来了许多好处,包括(由项目本身所限定),但不限于:
- 在安装前下载所有内容
- 在过程中提供有用的反馈
- 保持所采取行动的历史
- 根据Python传统提供有用的错误消息
- 补充的virtualenv, 非常精美,它的工作原理
要了解更多关于点子 ,考虑点击阅读其介绍位于包的PyPI指数在这里 。
彻底的PIP操作方法
在本节中,我们将讨论如何在必要的依赖的点子 ,安装了最新的内置其次是提供如安装 , 卸载 , 冻结和管理需求的核心功能步行通过。
当我将使用PIP?
正如在介绍时承诺的,我们的目标是给你的实际生活场景的例子。
想象一下,你正在开发一个小应用程序。 你已经设置了自己的路线图,一切都很顺利。 然后你发现一个库(或一个模块),如果你包括在你的应用程序,可以有很大的帮助。 你可以下载它的传统方式,我们已经解释。 然而,一旦你不只有一个,但3,4或甚至20包,你需要处理,这个过程变得繁琐。 包括管理它们(例如更新,卸载,更换,使用不同的版本),你可以看到你将需要处理,这是使用PIP,包管理器裁员的问题。
安装PIP
为了安装点子 ,我们首先需要考虑其依赖的照顾。 不要担心,这是非常容易。
setuptools
如上所述,PIP的依赖项之一是setuptools的图书馆。 它建立在Python的分布公用事业工具称为distutils来的(标准)功能。 鉴于洒落在默认情况下提供的,所有我们需要的左边是setuptools的 。
我们将安全地下载安装文件使用setuptools的 curl
。 卷曲是系统库,让在各种协议的数据传输(即用于应用程序,如HTTP之间的数据交换的通用语言)。 这将验证从源头上SSL证书和数据传递给Python解释器 。
这些设置文件,Python解释器将要执行,自动安装过程,因为他们在我们的系统上设置最新的稳定版本。
执行以下命令:
curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python -
这个安装让我们能够在整个系统中使用pip。 但是,这不是安装任何其他软件包的首选方式。 什么建议是始终使用自包含的Python环境的virtualenv。 我们将在下一节中讨论它。
注意:您可能需要以继续下载明确获得超级用户权限。 在这种情况下,请考虑使用:
curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | sudo python -
无需安装其单一的依赖之后,我们现在可以继续下载和设置点子 。
我们将使用再次成为curl
有安全下载和安装的安装文件。
执行以下命令:
curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python -
为PIP默认安装文件夹位于:
/usr/local/bin
为了使用它没有说明的完整路径,它必须附加到路径 。
更新PATH:
export PATH="/usr/local/bin:$PATH"
完成此步骤后,我们愿与PIP工作。
使用PIP
使用PIP是真的很有趣,可以认为头痛免费。 如果你已经处理了在过去非常不必要的问题,甚至不明白为什么,PIP将确保它们保持在最低限度你批文。
使用PIP安装软件包
PIP可以做很多事情,但它不会是一个错误的声明,最常用的功能,它是安装软件包 。 有几种方法可以为你处理这项工作。
查找和安装软件包:
# Example: pip install [package name]
# Let's install the excellent *requests* library
pip install requests
查找和安装特定版本:
# Example: pip install [package name]==[version]
# Let's install version 2.0.0. of requests
pip install requests==2.0.0
从URL或VCS存储库安装:
# Example: pip install [url]
# Let's install virtualenv
pip install https://github.com/pypa/virtualenv/tarball/1.9.X
安装的virtualenv内:
# Example: pip install [env name] [package name]
# This will either install inside an environment, or create one
# Let's install requests inside a virtualenv called *venv*
pip install -E venv requests
卸载封装,PIP:
PIP的第二个最常见的功能可能是卸载软件包。
卸载软件包:
# Example: pip uninstall [package name]
# Let's remove requests library
pip uninstall requests
升级包与PIP
如果你正在考虑卸载安装一个应用程序的新版本中,你可以尝试升级 。
升级软件包:
# Example: pip install --upgrade [package name]
# Let's upgrade requests library
pip install --upgrade requests
搜索与PIP封装
在决定删除或升级包之前,你可能会觉得有必要先一个搜索 。
搜索包:
# Example: pip search [package name]
# Let's find all django packages
# This might take a while (there's tonnes of them!)
pip search django
创建具有画中画安装包的列表
一个点的最真正的无与伦比的和挽救生命的能力是能够创建-轻松- 安装的软件包列表(“冻结”)。 这也是通常称为需求 。 根据您的Python环境(无论是虚拟还是一个全球性),PIP将创建一个文件,列出一个简单的命令安装的所有软件包。
创建新列表(“冻结”):
注:此命令将在当前工作目录中输出的文件。
# Example: pip freeze > [file name.ext]
# Let's list all the packages currently installed
pip freeze > package_list.txt
在模板顶部创建列表(“冻结”):
注:此命令将在当前工作目录中输出的文件。
# Example: pip freeze -r [existing file.ext] > [filename.ext]
# Let's append new packages installed after the last freeze
pip freeze package_list.txt > package_list_new.txt
使用* pip从列表安装所有软件包
当您正在开发的应用-最好是在一个虚拟的环境-你将拥有所有安装有它的依赖( 需要包 )的。 用冻结已经提取他们的名单后,你可以让他们与安装再次进行安装。
从列表安装所有软件包(“冻结”):
# Example: pip install -r [file name.ext]
# Let's install back all the packages from the previous example
pip install -r package_list_new.txt
一个彻底的virtualenv操作方法
让我们确定究竟是virtualenv中以及它派上用场的情况开始。
virtualenv:
在Python的世界中, 环境是它包含一个Python项目(应用程序),以便需要有组织,孤立的方式运行一切文件夹(目录)。 当它被启动,它会自动带有自己的Python解释器-用于创建它的副本之一-沿着它自己的点子 。
有许多的那VIRTUALENV解决了问题:
- 为Python项目创建一个新的,隔离的环境
- 能够下载包而不需要管理员/ sudo权限
- 轻松打包应用程序
- 创建依赖的名单属于与PIP创建一个单一的项目
- 轻松恢复使用需求文件的依赖与PIP创建
- 为跨系统的可移植性
使用的virtualenv是与Python项目工作,无论你可能多少是忙, 是推荐的方式。 它是非常容易使用和一个优秀的工具,在你的一次性。 当PIP加上它确实没有奇迹。
我们将与安装的virtualenv系统启动。
安装virtualenv
为了安装virtualenv中 ,我们将要在PIP呼救。 我们将把它安装为一个全局可用的包,供Python解释器运行。
有两种方法来获取应用程序。 您将能够获得的版本取决于您选择的一个。
最简单的方法是使用PIP来搜索,下载和安装。 这可能不是为您提供最新的稳定版本。
下载的virtualenv使用PIP:
# Example: [sudo] pip install virtualenv
sudo pip install virtualenv
下载使用curl最新的可用之一:
virtualenv中的最新的版本是1.11.X
。
# Example: [sudo] pip install [github repo]/[version]
sudo pip install https://github.com/pypa/virtualenv/tarball/1.1.X
使用的virtualenv
使用这个工具获得由它来创建一个文件夹,包含Python解释器和PIP的副本。 此后,为了与它的工作,我们需要,可以指定翻译的位置,或activate
它。
在虚拟环境中使用解释器安装的所有应用程序将是该位置内的位置。
当您使用PIP创建它们的列表,只有文件夹内的人会被编译成一个文件。
记住:当你完成一个环境中工作,切换到另一个之前-或在全球范围内安装了一个工作-你需要确保
deactivate
它。
创建/启动一个虚拟环境 (的virtualenv)
使用用于运行它的相同解释器创建环境:
# Example: virtualenv [folder (env.) name]
# Let's create an environment called *my_app*
virtualenv my_app
使用自定义Python解释器创建环境:
# Example: virtualenv --python=[loc/to/python/] [env. name]
virtualenv --python=/opt/python-3.3/bin/python my_app
激活虚拟环境
# Example: source [env. name]/bin/activate
# Let's activate the Python environment we just created
source my_app/bin/activate
在虚拟环境下不激活工作
由于各种原因,您可能在使用前选择不激活环境。 这为您运行的命令带来了更多的灵活性,但是,您需要确保每次都定位正确的解释器。
# Example: [env. name]/bin/python [arguments]
my_app/bin/python python_script.py
使用无需激活环境内的安装点子
# Example: [env. name]/bin/pip [command] [arguements]
# Let's install requests library without activating the env.
my_app/bin/pip install requests
停用虚拟环境 :
# Example: deactivate
# Let's deactivate the environment from earlier
deactivate