【问题标题】:Running pip3 on MacOS Sierra (Python newbie) - do I need a virtualenv?在 MacOS Sierra(Python 新手)上运行 pip3 - 我需要 virtualenv 吗?
【发布时间】:2017-12-26 03:21:49
【问题描述】:

我正在运行MacOS Sierra 10.12.6

系统默认自带Python 2.7.10

我安装了Python 3.6.3(带有 IDLE),这样我就可以学习 Python (3)。我知道这是正常的,因为 MacOS 可能依赖 Python 2.x 来运行某些程序。无论哪种方式,如果我从命令行/终端运行python3,或者如果我使用 IDLE(默认为 Python 3),Python3 运行得很好。

现在我想安装一些库,例如 Beautiful Soup

而且我相信我可以按如下方式安装它:

pip3 install beautifulsoup4

应该会自动安装它。但是,我读到建议在运行上述命令之前在 Mac 上使用virtualenv。作为一个新手,我不想在我的电脑上搞砸任何东西,所以谁能指出我该如何正确地做到这一点?

例如,我可以点击这个链接:http://sourabhbajaj.com/mac-setup/Python/virtualenv.html

但我只是想写在这里,以确保在我这样做之前我遵循正确的文章/命令。只是超级小心!

另外,我可以用我的“虚拟环境”创建一个文件夹,然后在其中为每个项目添加子文件夹吗?意思是,我不需要每次都这样做,我有一个虚拟环境,我所做的任何项目只是该空间内的一个子文件夹,因此我可以使用我安装的任何库。只是试图掌握这个概念。

谢谢!

【问题讨论】:

  • 只是对以下答案的回应,也不要试图粗鲁,但虚拟环境几乎从不矫枉过正。这里列出的原因太长了,但是当你想在安装了 python 3.(x-1) 的机器上使用 python 3.x 时,如果你保持隔离,很多事情都会变得更好、更容易。 .一旦你做了几次,虚拟环境就很容易设置,而且非常值得——只要早点养成习惯。另外,如果你的问题得到了回答,你能把它标记为这样吗?
  • 感谢您的评论。因此,使用 Pycharm,是否可以说将您的 Pycharm 项目从一台机器转移到另一台具有不同 Python 版本的机器上,然后尝试运行它们?我假设 Pycharm 的 venv 得到了维护,我不确定 Pycharm 的实际版本,但基本上 venv 会携带您为该 venv 导入的任何库,而无需安装它们。那是对的吗?顺便说一句,我喜欢 Pycharm,谢谢 :)
  • 我对 Pycharm 的建议之一是它为您创建了虚拟机。但是,您通常不会共享您的虚拟环境,因为您的激活脚本将您的 PATH 变量设置为 venv 的位置——这可能会有所不同。对于共享项目——查看“requirements.txt”和 setup.py。
  • 明白,谢谢史蒂夫J

标签: python pip virtualenv


【解决方案1】:

很抱歉造成混乱。对于刚开始的人来说,这可能是一个艰难的话题。

官方文档推荐venv,与virtualenv类似,但略有不同。

我强烈推荐 pycharm。它将为您创建您的 venv,作为您项目的一部分,您可能会觉得这很有帮助。

[编辑:pycharm 的一些其他虚拟环境功能可以帮助您]。

  • 如果您为未安装的包输入导入语句,它会主动为您安装。
  • 键入 alt-F12 将打开一个控制台,您的虚拟环境处于活动状态
  • 它会为您同步您的 requirements.txt 文档
  • 它为您管理虚拟环境路径(只要您在 pycharm 中运行),帮助避免许多新手在虚拟环境中遇到的导入问题。

我不隶属于 pycharm,顺便说一句——我只是认为它对于 python 开发人员来说是一个很棒的工具,特别是对于新手来说,它对虚拟环境的处理特别有用。

【讨论】:

  • 谢谢!对于 Pycharm,免费版是否也为您创建了 venv?我试试看。
  • 我有 95% 的把握,但我已经有一段时间没有使用免费版本了,所以我不能完全自信地说。此外,它在虚拟环境方面还为您做了一些其他好事(我会在我的答案中添加)。
  • 非常感谢 SteveJ。非常感激!另外,您是否会碰巧知道这是否可能与 NodeJS npm 发生冲突?或者我可以在这里使用 npm 来满足我的需要吗? (因为我已经在我的 Mac 上为另一个项目安装了它)对不起,仍然掌握包管理器。我不是刚开始编程,但肯定是这个话题的新手/落后。
  • 对不起,对nodejs一无所知。
【解决方案2】:

您为每个项目创建一个 virtualenv 作为跟踪特定依赖项的一种方式,以使它们保持最小化,这样当您想与其他人共享项目时就更容易了。

但这不是你需要的。在您的真实环境中安装软件包也不会造成任何伤害。这样你就可以安全运行了

pip3 install beautifulsoup4

【讨论】:

  • 谢谢!出于学习的目的,我觉得我应该尝试一个 virtualenv。你会建议我上面粘贴的文章吗,因为我是第一次尝试这个/Python virtualenv?
  • 不要试图粗鲁,但如果你的目的是学习,那么为什么要花两天时间来弄清楚你是否应该阅读一篇文章?除非你在你的机器上运行多个企业项目,否则我怀疑你会与不同的包版本有任何冲突。因此,virtualenv 完全是矫枉过正。我建议你先学会在没有它的情况下使用 python/pip,然后下次你会对什么是 virtualenv 以及什么是常规的 python 包管理有一个更清晰的了解。边做边学。
  • 感谢哈拉德。完全同意,我只是提早问我的问题,因为我计划在星期五这样做。因此,我只想在我的机器上尝试之前确定我的路径 - 再次,在我在终端上运行命令之前确保安全 :) 感谢您的所有帮助!
猜你喜欢
  • 2017-03-20
  • 2017-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-30
  • 2018-12-12
相关资源
最近更新 更多