问题描述
我已经通过python -m venv virtualenv
和包含烧瓶代码的backend
文件夹建立了virtualenv文件夹。
但是,当我运行flask代码时,它找不到flask模块。我在virtualenv处于活动状态时安装了它,如果我在virtualenv处于活动状态时尝试运行它,则它可以正常工作并找到flask。但是,如果我停用virtualenv,则没有骰子。它找不到依赖项。
这是应该如何工作的,还是我配置错误?我是否需要始终使用virtualenv active?对我来说似乎是错误的。
解决方法
是的,这是预期的行为。但是...
您不需要“ 激活”任何虚拟环境。重要的是要确保使用虚拟环境中的解释器。
假设您运行python -m venv /path/to/venv
。虚拟环境在/path/to/venv
上创建,您将在/path/to/venv/bin/python
上找到Python解释器可执行文件(或符号链接)。
然后您可以呼叫/path/to/venv/bin/python -m pip install flask
。还有/path/to/venv/bin/python /path/to/some_script.py
。这些都将利用虚拟环境隔离的优势。
并且激活虚拟环境时,/path/to/venv/bin
目录位于PATH
环境变量的顶部,因此当您键入python
时,找到的第一个python
可执行文件将自动为/path/to/venv/bin/python
。
实际上,当您在虚拟环境中安装依赖项时,您必须在运行项目之前将其激活,但是您也可以通过终端(虚拟环境之外)将依赖项直接安装到系统中,并可以运行项目。
最好具有虚拟环境,以使项目依赖项和额外的依赖项分开。对于大型项目,您可以轻松收集必要的依赖项,而无需计算未使用的依赖项。