运行 virtualenv 中现有的 python Web 应用程序

Run an existing python web application inside a virtalenv

我是 python 使用 virtualenv 进行开发的新手。我已经在 windows 中安装了 python 2.7、pip、virtualenv、virtualenvwrapper,我正在使用 windows PS。我已经参考了很多教程来设置它。它们中的大多数都包含相同的步骤,而且几乎所有的都没有解释在创建 virtualenv 之后要做什么。

  1. 我如何在 virtualenv 中实际工作?假设我想在我的新环境 virtualenv(例如;testenv)中安装该软件包后创建一个新的烧瓶应用程序。

  2. 如果我已经有一个现有的项目并且我想把它放在一个新创建的虚拟环境中,我该怎么做?文件夹结构应该如何?

  3. 我对虚拟环境的理解是,它通过将应用程序隔离并将其所有依赖项保留在该特定环境中(而不是与他人共享),为您的应用程序提供沙箱。我是不是理解错了?

请帮我解决这个问题。

  1. testenv/bin/pip 和 testenv/bin/python
  2. 我会在本地存储库中检查它,然后在 virtualenv 中检查它。
  3. 不,你没有。

How do I actually work in a virtualenv? suppose I want to create a new flask application after installing that package in my new env virtualenv (eg; testenv).

您打开命令提示符并激活 virtualenv:

> \path\to\env\Scripts\activate

当你 运行 pythonpip 时,他们 运行 在 vi​​rtualenv 中。您必须为每个命令提示符 window 执行此操作,因为在 virtualenv 中工作实际上只是 运行ning C:\path\to\env\bin\python 而不是 pythonC:\path\to\env\bin\pip 而不是pip.

If I already have an existing project and I want to put it inside a newly created virtual env, how do I do that? How should the folder structure be like?

没关系。当您安装 Python 包时,它们会全局安装到 C:\Python27\site-packages 中。使用 virtualenv,您可以创建独立的 Python 环境,它们有自己的包,因此如果您正在处理两个需要不同版本包的项目,它们可以毫无问题地共存。

有些人为他们的 virtualenvs 创建了一个文件夹(比如 C:\Users\you\Virtualenvs\my_website)。您还可以将其与您的项目一起存储(如 C:\Users\you\Projects\my_website\venv)。一旦你激活它,位置就无关紧要了。我用的是后者。

My understanding of virtual env is that it provides a sandbox for your application by isolating it and keeping all its dependencies to itself in that particular env (and not sharing and it with others). Have I understood it wrong?

没有。我要澄清的唯一一点是 "sandbox" 仅适用于 Python 的包,它不会以任何方式影响您的应用程序。