【问题标题】:Where to install a Python package - system wide or in a virtual env?在哪里安装 Python 包 - 系统范围或虚拟环境?
【发布时间】:2020-04-20 00:04:27
【问题描述】:

我安装了 Python 3.7(系统范围)以及 Numpy、Pandas、pptx、xlsxwriter 等软件包。最近,我了解了虚拟环境(是的,我参加聚会很晚),并清楚地看到了好处。但我对一些事情感到困惑。希望我能在这里得到答案。

  1. 在我的大多数项目中,我使用常见的包,如 Numpy、Pandas、Matplotlib、mysql.connector 等。我应该在系统范围内安装这些包吗?还是应该将它们安装在我为每个项目创建的每个虚拟环境中,例如,相当于在 10 个不同的虚拟环境中安装 Pandas 10 次?

  2. 如果我安装了不属于 Python 标准库的包(系统范围),例如 pptx 和 mysql.connector,并且我创建了一个虚拟环境,我是否可以从一个虚拟环境,还是我也应该将它们安装在虚拟环境中?

  3. 像 jupyter notebook 这样的模块呢,它不是任何项目的一部分,但我喜欢用它来进行简单的代码开发和测试(简单的绘图等)。这应该在系统范围内安装吗?

我正在考虑从我的计算机上卸载 Python 3.7 和所有软件包,并重新安装 Python 3.8。我想以“正确”的方式解决这个问题。我认为 Numpy 和 Pandas 之类的软件包(我做了很多数据操作/绘图)应该安装在系统范围内,并且每个虚拟环境都应该可以自动访问它,以及更专业的软件包(至少对我来说)像 pptx应安装在特定项目的特定虚拟环境中。我的假设是否正确?

请就如何在虚拟环境中以最佳方式安装包提出建议。

编辑:根据 Ni 的回复,我会再问一个问题:是否有模块(例如,python-dateutil,可能在许多项目中使用)和/或安装模块系统有意义的情况 -宽?

【问题讨论】:

    标签: python-3.x package virtualenv


    【解决方案1】:

    一般来说,我从不在系统范围内安装软件包。

    1. 您可能会在您的环境中安装需要特定版本的 Numpy 的软件包。在这些情况下,如果您更新 Numpy 的系统范围版本,环境中的包可能会损坏,而您不会知道发生了这种情况。

    2. 是的,您可以从虚拟环境中访问它们。但一般来说,不要在系统范围内安装软件包

    3. 同样,我不会在整个系统范围内安装该系统。例如,您可能有运行不同 python 版本的环境,这可能与同一版本的 Jupyter 不兼容

    您似乎在从事大量数据科学工作 - 您可能希望使用 Anaconda 来帮助您管理虚拟环境和软件包安装

    【讨论】:

    • 谢谢你。我已经安装了 Anaconda,但由于某种原因,它与我尝试使我的 tkinter 项目之一可执行的尝试相冲突。此外,在 3 年的时间里,我发现自己最多使用了十几个模块。所以我摆脱了 Anaconda,安装了基本的 Python 3.7 并在系统范围内安装了 8-10 个模块。但我了解了 venvs,因此决定尝试一下。
    猜你喜欢
    • 2020-10-01
    • 2019-04-20
    • 1970-01-01
    • 2020-02-27
    • 2019-01-20
    • 2022-10-07
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多