首页 > 解决方案 > Virtualenv 用于具有多个模块的项目

问题描述

我正在尝试在 python 2 中从头开始构建一个项目,它的结构如下所示。过去我创建了具有单个层次结构的项目,所以会有一个virtualenv,但是这个项目有多个子包,要遵循的最佳实践是什么:在 project_root 目录中应该有一个由所有子包共享的 virtualenv,或者virtualenv每个子包应该有单独的吗?

project_root/
├── commons
│   ├── hql_helper.py
│   ├── hql_helper.pyc
│   ├── __init__.py
│   └── sample_HQL.hql
├── fl_wtchr
│   ├── fl_wtchr_test.py
│   ├── fl_wtchr_test.pyc
│   ├── __init__.py
│   ├── meta_table.hql
│   ├── requirements.txt
│   ├── sftp_tmp
│   ├── sql_test.py
│   └── sql_test.pyc
├── qry_exec
│   ├── act_qry_exec_script.py
│   ├── hive_db.logs
│   ├── params.py
│   └── params.pyc
├── sqoop_a
│   ├── __init__.py
│   └── sqoop.py
└── test.py

标签: python-2.7virtualenv

解决方案


可以为每个模块创建单独的虚拟环境;但从根本上说,您希望并期望所有这些代码最终能够在没有 virtualenv 的情况下运行。您的所有模块都应该能够与您安装到顶级虚拟环境中的任何内容一起运行,因此这就是您应该主要测试的内容。


推荐阅读