【问题标题】:Virtualenv and code location in debianDebian中的Virtualenv和代码位置
【发布时间】:2014-04-03 17:17:16
【问题描述】:

我正在研究 debian 和 virtualenv,我想知道人们会推荐什么目录结构。从我的阅读来看,这似乎是个好主意:

代码:

var/www/<projectname>/src

虚拟环境:

var/www/<projectname>/venv

谁能在这方面做得更好,或者请给我指出正确的方向?

【问题讨论】:

    标签: python debian virtualenv


    【解决方案1】:

    在我们公司,每个用户的主目录下都有一个 Projects 目录,类似于:

    /home/username/Projects
    

    此目录包含所有当前项目,假设您要检查 Fooogram 项目,它位于:

    /home/username/Projects/Foogram
    

    virtualenv 是在项目文件夹中创建的,作为 .venv 目录,因此以下目录包含 virtualenv:

    /home/username/Projects/Foogram/.venv
    

    现在,您肯定希望使用 DVCS(分布式版本控制系统),例如 Git 或 Mercurial。将 venv 和二进制文件放在 DVCS 下通常是一个坏主意,因此您应该添加一条规则以避免将 .venv 目录添加到存储库中。使用 Mercurial,您可以通过编辑 .hgignore 文件来实现此目的。你可以这样做:

    nano /home/username/Projects/Foogram/.hgignore
    

    添加以下行:

    .venv/*
    

    这将忽略 .venv 目录以及其中的所有内容。您可能还应该花时间将以下规则添加到 .hgignore

    *.pyc
    *.*~
    *.log
    *.orig
    

    这些规则将帮助您保持存储库的健全。

    【讨论】:

      【解决方案2】:

      如果您打算做一个简单的项目,您建议的目录会很好。对于大型或长期项目,您可能希望使用某种 SCM 工具,例如 git 或 mercurial。如果您确实想使用 SCM 工具,最好将虚拟环境放在另一个目录中,这样它就不会包含在您的 SCM 存储库中。

      将虚拟环境放入存储库中通常是不必要的,因为answered here。 Python 有 pip 等方便的工具来保存包列表,并轻松地将它们安装在另一个虚拟环境中。

      pip freeze输出虚拟环境包

      pip freeze > requirements.txt
      

      使用 pip install 从 requirements.txt 安装包

      pip install -r requirements.txt
      

      推荐

      假设你用git做单片机,代码可能在

      /home/jimmy/git/<projectname>
      

      虚拟环境可以位于

      /home/jimmy/venv/<projectname>
      

      【讨论】:

      • 好的,那么在这种情况下,venv 和代码的查找位置在哪里?
      • 我的代码通常放在 git 存储库 /home//git// 中。我的虚拟环境在 /home//venv/.
      猜你喜欢
      • 2010-12-19
      • 1970-01-01
      • 1970-01-01
      • 2016-04-14
      • 2012-03-24
      • 1970-01-01
      • 2023-03-25
      • 2011-09-21
      • 1970-01-01
      相关资源
      最近更新 更多