社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python包安装快速入门指南

Python程序员 • 4 年前 • 400 次点击  

当人们开始学习Python时,他们经常会遇到一个想要使用的包,而通常都会以“pip install”来安装它。这个建议的问题是,它是一个非常简单的管理包的观点,并且实际上会导致将来出现问题。虽然在packaging.python.org上有一个关于安装包的教程,但是对于想快速上手并继续的一些人来说可能会有点让人生畏。


如果你只是想要开始使用Python,并且想要避免在全局安装包的陷阱,那么你只需要3个步骤就可以做正确的事情。


总结

  1. 创建一个虚拟环境,例如:python3.8 -m venv .venv(如有必要,使用py -3.8代替python3.8)

  2. 激活虚拟环境,例如:source .venv/bin/activate.fish(假设你使用的是fish shell)

  3. 安装你想要的包,例如:python -m pip install --upgrade pip——如果你想安装最新版本的pip的话(你可能已经安装了)


请注意,下面解释了步骤1的一个更高级的版本。本文还涉及了其他shell的步骤2的版本。


细节


步骤1:创建一个虚拟环境


第一步是创建一个虚拟环境。你想要这样做是因为你希望将安装的包与你的全局Python安装隔离开来。由于Python已被广泛地用于运行操作系统,现在如果你直接安装到你的全局解释器中,那你实际上会破坏你的操作系统。所以,请始终使用某种形式的隔离环境(我将使用虚拟环境,因为它们内置在Python本身中,它们是轻量级的,而且VS Code对它们也有了很好的支持)。


我还想说,在创建虚拟环境时,你应该始终指定想要的Python的特定版本。你将会注意到下面我使用的是python3.9或python3.8这样的命令,而不仅仅是python3。这是为了确保你得到你想要的Python版本。


另外,不要将你的虚拟环境提交到版本控制系统。如果你要确保自己不这样做,那么下面的命令将创建一个.venv目录,你可以将一个只包含 * 的.gitignore文件放入其中(如果你使用的是UNIX,你可以在创建虚拟环境之后,使用echo "*" > .venv/.gitignore来做到这一点)。


最后,你会注意到我在下面使用了--prompt标志。它完全是可选的,并且在任何操作系统上都是可以省略的。它所做的只是通过给你的虚拟环境提供当前目录的基本名称,使你接下来的步骤2的shell提示信息更丰富一些,所以这是一个很好的操作,但是如果你不想使用该标记,那它也不会影响任何东西。


对Debian/Ubuntu用户的警告


如果你使用的是一个基于Debian的操作系统(例如Ubuntu),并且你使用的是操作系统安装的Python版本,请确保通过apt安装python3-venv。如果你是从python.org或其他方式安装的,那你很可能就已经具备了你所需要的东西。


对Windows用户的提示


下面我使用了py,因为它是python.org安装程序附带的。如果你由于某种原因没有安装它,那么也不要担心,例如,用python3.8代替py -3.8即可。


Python 3.9及更新版本


在写这篇文章的时候,Python 3.9还没有出来,但是它将在2020年10月发布,希望到那时这篇博文还在,所以我将介绍一个将要发布的简洁的新特性,它使得--prompt更易于使用。


UNIX

Windows


Python 3.8 和更老版本


fish shell


bash shell


PowerShell



步骤2: 激活虚拟环境


激活你的虚拟环境可以使你在键入python时,它将指向你的虚拟环境中的解释器(以及使你以后安装的任何包安装的任何工具可用)。这一步完全是可选的,但是却非常方便。如果你在步骤1中使用了--prompt,那么你的shell提示符将显示包含虚拟环境的目录名,以提醒你python指向的是什么。


如果在任何时候你想关闭你的shell的激活状态,你可以运行deactivate(关闭/退出你的shell也可以,因为激活不是永久的)。


fish shell

bash shell

PowerShell


你会注意到这里有两个命令。第一个命令只需要运行一次,它会降低PowerShell的安全级别,从而允许已经签名的PowerShell脚本执行,但是这些脚本的签名密钥没有安装在要运行的操作系统中(Python 3.8的激活脚本由Python软件基金会进行签名)。如果你不运行这个命令,你会得到一个错误。这没什么大不了的,你仍然可以继续根据需要改变执行策略。



步骤3:安装软件包


如果你已经看到过“只是”运行pip来安装某些东西的指南,你可能会注意到我下面的建议有些不同。我有一篇关于原因的完整的博文,但是简短的答案是,你希望确保你正在安装到你的虚拟环境中,而不是偶然地安装到了你的Python的全局环境中(这也是这篇博文的前两个步骤存在的全部原因)。


我还使用pip作为示例项目来使用一个额外的--upgrade标志进行安装,以便你在虚拟环境中升级pip。与默认安装的版本相比,可能会有一个新的pip版本可用,因此这不仅是一个示例,而且对你也很有用。另外,这也是一种确保你的虚拟环境按预期正常工作的简单方法。


如果你激活了你的环境



如果你没有激活你的环境

UNIX

Windows


就是这样!


按照上面的步骤,你最终会得到:


  1. 一个虚拟环境,它会将你安装的东西与Python的全局安装隔离开来

  2. 一个为虚拟环境激活的shell,以便你更容易地使用Python

  3. 一个pip的更新安装


如果在任何时候你不再需要你的虚拟环境了,你可以简单地删除该环境所在的.venv目录。如果你以后想使用较新的Python版本,你只需删除该.venv目录,并创建一个新的虚拟环境(它们注定是一次性的东西)。记住不要将你的虚拟环境提交给源码控制系统。


请注意,如果这不是一个用于实验的一次性的虚拟环境,有一些方法可以帮助你长期正确地管理你的包依赖关系。这个话题值得在另一篇博文中讨论,所以我在这里就不打算深究了。你只需要知道,如果你所做的工作需要持久化,那么你将需要使用一些工具来帮助你跟踪代码所依赖的包。


我也完全承认这篇博文是武断的。它短小精悍,是我用来快速入门和继续的首选方式。请注意,如果你愿意,有一些工具可以帮助你自动化这三个步骤。除了虚拟环境之外,还有其他可能更适合你需要的替代隔离环境。在Python社区中,我们非常幸运地拥有这么多热诚的用户,如果有些东西让人感到尴尬,那么某个人可能就已经提出了一个可以改善你的体验的解决方案,。


英文原文:https://snarky.ca/a-quick-and-dirty-guide-on-how-to-install-packages-for-python/ 
译者:天天向上

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/54426
 
400 次点击