Python (Django) 项目的依赖安装

Posted

技术标签:

【中文标题】Python (Django) 项目的依赖安装【英文标题】:Dependency installation for Python (Django) project 【发布时间】:2017-12-11 16:39:17 【问题描述】:

我是 Python 新手,但我的工作场所有需求。另一个程序员正在开发一个 Python 项目,Django 框架,我的任务是找到一种方法,让这个项目可以在任何计算机上执行。 所以,我说的是 Composer for php 之类的东西。我需要一种最简单的方法,在 debian 分支中在终端中写入一个命令,该命令将在该项目中找到一种“composer.json”文件,将读取所有必需的软件、模块、库并逐步安装它个人电脑。

任何想法如何以最简单的方式做到这一点?谢谢。

【问题讨论】:

仅仅一个 requirements.txt 就足够了。或者,如果你更有野心,那就使用 docker "有什么方法可以用最简单的方法做到吗?"是的,使用the tool that already exists。请注意,搜索您的确切标题将使您走上正轨。链接到“如何安装 Django”页面的 Django 教程也是如此。请确保在 Stack Overflow 上提问之前进行基本的网络搜索。 【参考方案1】:

由于您没有谈到虚拟环境,假设您已经设置并激活了环境。首先通过键入以下命令获取项目目录中require.txt文件中的所有库列表,

pip freeze > requirements.txt

当您需要在另一个系统中设置项目时,只需运行这个

pip install -r requirements.txt

所有的依赖都会安装在你的项目环境中。

【讨论】:

只是为了确定。我的任务是找到一个解决方案,当项目完成时,客户可以轻松执行该解决方案。我的意思是......他在他的电脑上下载了项目,在他的 Ubuntu 命令中写道,该命令将启动该项目的所有环境的安装,以便在公司启动和使用。 您的项目是否在虚拟环境中运行? 目前,我不知道如何回答这个问题。现在他们说我必须像 PHP 的作曲家那样做。另一个程序员将​​在 Django 上制作这个项目,我需要简化如何将 Django 项目所需的所有这些库安装在客户的 PC 上。这是一个网络应用程序...我不知道还要添加什么。可能是 Django 项目已经安装了类似“pip”的东西,我可以用我的库和版本列表更改需求文件,一切都会正常工作?? 好吧,先学习一些使用虚拟环境安装项目的教程,然后你就会对这个答案有所了解。 @IuraVarzari 您可以使用 system() 运行 pip,这是 django 初始化的一部分。【参考方案2】:

使用pip freeze > requirements.txt 是一种反模式。它做了一些正确的事情,例如固定版本号,但它可能会导致以后出现孤立包的问题。

我使用pip-tools,这样只有你的***依赖项被放置在你的requirements.in文件中,然后我使用pip-sync将我的本地环境与pip同步。

在我的 2016 Pycon UK 演讲中提供了更多关于 pip 最佳实践的信息 - Avoiding the "left pad" problem: How to secure your pip install process

【讨论】:

【参考方案3】:

在 python 中有一个 requirements.text 文件,它负责该项目中使用的库。您还应该使用 virtualenv

【讨论】:

需求文件本身什么也不做。除非您要解释如何使用它来创建、维护和安装库,否则这个答案不是很有帮助。

以上是关于Python (Django) 项目的依赖安装的主要内容,如果未能解决你的问题,请参考以下文章

白手起家Django项目发布下篇_Django项目nginx部署

Django项目发布 环境部署(下)

CentOS7下部署Django项目详细操作步骤

Django 总结

Django项目 生成依赖包

python安装虚拟环境