什么是依赖关系,我为什么要关心它们?
What are dependencies and why should I care about them?
我是网络开发的初学者,目前正在创建一个 Django 网络应用程序以与 MySQL 数据库交互。
在我阅读 Django 文档的过程中,它不断谈论“使用 virtualenv 等虚拟环境隔离依赖项”。
我真的不明白什么是依赖关系以及为什么创建虚拟环境会帮助'isolate'他们彼此。
什么是虚拟环境?是否像你机器上的另一台机器运行?
对于这些概念性问题,我们将不胜感激。
一些软件包需要其他软件包的特定版本才能 运行。例如,如果您使用 mypackage
版本 1.0.0 明确地为 运行 构建了一些代码,并且出现了一个更新的版本,该版本弃用了您需要的功能,那么执行 pip install mypackage
会破坏您的代码.
示例:如果您想打包代码,您的依赖项之一就是 django
。如果您尝试在没有 django
的情况下 运行 您的代码,它会中断,显示 ModuleNotFound: No module named 'django'
。因此,您需要在 运行 编写代码之前 pip install
它。同样,您也不会想要 django
的 早期 版本,因为它的某些功能可能在早期版本中不可用,或者它们的功能可能有所不同。
virtualenv 本身就是一个新的 python 解释器。它有自己的 python 可执行文件、自己的 site-packages
包目录等。您可以通过 command-prompt/shell activate
环境然后访问它。 anaconda
是 virtualenv 管理器的另一个例子。在虚拟环境中,您可以管理包以匹配特定应用程序,这样构建新环境不会影响您的其他代码并可能破坏所述代码,因为它是一个独立的解释器,不依赖于基础 python 在你的机器上安装。
这还允许您 运行 不同的口译员。你可以有一个 python2.7 的 venv 和一个 python3.6
的 venv
Virtualenvs 是独立的 python 环境,可以在您的 machine/server 中创建,它们非常有用,因为每个 python [=] 都拥有 specific/relevant 个库 project/programs 您可能拥有的各种性质(Web 应用程序、机器学习应用程序、数据处理微服务、物联网等)。
例如,假设您的 machine/server 托管了 2 个或更多 python projects/programs。他们每个人都可能需要不同版本的 Django、MySQL-connector 等(可以通过 pip
安装)。因此,您需要为每个 projects/programs 单独的 python 环境以防止冲突。
创建 virtualenvs 很简单,您可以通过 pip
安装它们。
参见:https://virtualenv.pypa.io/en/latest/
此后,您可以为每个 python 项目创建不同的 virtualenv,以隔离 python 环境和所需的 libraries/packages(通过 pip
再次为每个环境安装) 每个项目。
我是网络开发的初学者,目前正在创建一个 Django 网络应用程序以与 MySQL 数据库交互。
在我阅读 Django 文档的过程中,它不断谈论“使用 virtualenv 等虚拟环境隔离依赖项”。
我真的不明白什么是依赖关系以及为什么创建虚拟环境会帮助'isolate'他们彼此。
什么是虚拟环境?是否像你机器上的另一台机器运行?
对于这些概念性问题,我们将不胜感激。
一些软件包需要其他软件包的特定版本才能 运行。例如,如果您使用 mypackage
版本 1.0.0 明确地为 运行 构建了一些代码,并且出现了一个更新的版本,该版本弃用了您需要的功能,那么执行 pip install mypackage
会破坏您的代码.
示例:如果您想打包代码,您的依赖项之一就是 django
。如果您尝试在没有 django
的情况下 运行 您的代码,它会中断,显示 ModuleNotFound: No module named 'django'
。因此,您需要在 运行 编写代码之前 pip install
它。同样,您也不会想要 django
的 早期 版本,因为它的某些功能可能在早期版本中不可用,或者它们的功能可能有所不同。
virtualenv 本身就是一个新的 python 解释器。它有自己的 python 可执行文件、自己的 site-packages
包目录等。您可以通过 command-prompt/shell activate
环境然后访问它。 anaconda
是 virtualenv 管理器的另一个例子。在虚拟环境中,您可以管理包以匹配特定应用程序,这样构建新环境不会影响您的其他代码并可能破坏所述代码,因为它是一个独立的解释器,不依赖于基础 python 在你的机器上安装。
这还允许您 运行 不同的口译员。你可以有一个 python2.7 的 venv 和一个 python3.6
的 venvVirtualenvs 是独立的 python 环境,可以在您的 machine/server 中创建,它们非常有用,因为每个 python [=] 都拥有 specific/relevant 个库 project/programs 您可能拥有的各种性质(Web 应用程序、机器学习应用程序、数据处理微服务、物联网等)。
例如,假设您的 machine/server 托管了 2 个或更多 python projects/programs。他们每个人都可能需要不同版本的 Django、MySQL-connector 等(可以通过 pip
安装)。因此,您需要为每个 projects/programs 单独的 python 环境以防止冲突。
创建 virtualenvs 很简单,您可以通过 pip
安装它们。
参见:https://virtualenv.pypa.io/en/latest/
此后,您可以为每个 python 项目创建不同的 virtualenv,以隔离 python 环境和所需的 libraries/packages(通过 pip
再次为每个环境安装) 每个项目。