Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

项目依赖管理 #14

Open
codetalks-new opened this issue Mar 28, 2019 · 0 comments
Open

项目依赖管理 #14

codetalks-new opened this issue Mar 28, 2019 · 0 comments

Comments

@codetalks-new
Copy link
Owner

存在的问题

  1. 项目一开始的依赖库只是通过将依赖声明在 requirements.txt 中。
    虽然都指定了版本,但是依赖的依赖的版本可能并没有锁定。
    所以需要优化。
  2. 项目依赖只是在 requirements.txt 中通过注释声明了各依赖的作用。往往造成生产环境也安装了不必要的依赖。

解决方案

首先更新 pip 本身依赖库。
安装 pip-tools 作为依赖管理工具。

  1. 最上层依赖分为生产环境依赖库和开发依赖库。

  2. 使用以 .in 为后缀的文件声明项目直接依赖。使用 .txt 结尾的用来 freeze 所有直接间接依赖。

  3. 创建一个 common.in 文件声明公共依赖, dev.in 继承 common.in 用于声明开发环境依赖。 prod.in 同样继承 common.in 声明生产环境依赖。
    可以使用 pip-compile requirements/common.in -o requirements/common.txt 来将冻结依赖。

  4. 直接依赖,应该在依赖后面或前面另起一行,简单描述为何增加此依赖。

需要添加依赖时可以先修改对应的 .in 文件。然后执行。
./requirements/update_locked_requirements.sh
如开发环境中,再根据需要执行相应的 pip install -r requirements/dev.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant