Python 在django服务器上安装软件包的最佳实践

Python 在django服务器上安装软件包的最佳实践,python,django,nginx,server,Python,Django,Nginx,Server,所以我自己设置了一个服务器。现在,我遇到了许多不同的安装软件包的方法。 我想到了一些核心包,比如nginx、gunicorn、python3、postgresql等等 我了解到,建立一个VENV虚拟环境是一件好事,这样我就可以在软件包上运行多个不同版本的项目 但有点让人困惑的是,哪一个不会在VENV内 有些人在VENV外部安装postgreSQL,但在VENV内部安装psycopg2。一些人在文夫内部发现了枪角。等等 是否有更好的安全遵循的最佳实践或规则 信息。我正在用Nginx,gunicor

所以我自己设置了一个服务器。现在,我遇到了许多不同的安装软件包的方法。 我想到了一些核心包,比如nginx、gunicorn、python3、postgresql等等

我了解到,建立一个VENV虚拟环境是一件好事,这样我就可以在软件包上运行多个不同版本的项目

但有点让人困惑的是,哪一个不会在VENV内

有些人在VENV外部安装postgreSQL,但在VENV内部安装psycopg2。一些人在文夫内部发现了枪角。等等

是否有更好的安全遵循的最佳实践或规则


信息。我正在用Nginx,gunicorn安装Ubuntu服务器16.04。PostgreSQL、psycopg2、python3这就是我在应用程序中使用的东西,它可以工作,但可能有更好的选择

Nginx、PostgreSQL、python3、supervisor作为系统包安装 为我在一台服务器中运行的每个应用程序使用virtualenv 我安装在那里:gunicorn、psycopg2和所有其他要求 对于Django项目,大多数时候它都列在 requirements.txt文件 需要时,使用主管运行gunicorn和Celery 如果您想实现一些可以使用的服务器安装自动化,那么它就没有那么复杂,并且可以通过大量代码示例与Python/Django很好地交互。但最好是你一开始就自己动手去做,去了解和理解你在做什么


祝你好运

@Mounir的答案相当可靠——但我想补充另一条建议——使用Ansible Galaxy的剧本也是另一种选择。现有的剧本已经存在于包括Django在内的许多用例中,它们考虑了许多最佳实践。我并不是说Galaxy上的所有剧本都是好的,但有些是好的,而且由于开源,它们经常被修补和更新。

postgreSQL不是python软件包,所以您不能在虚拟环境中安装它。通常你会使用你的软件包管理器,即Ubuntu中的apt来安装它。因此,虚拟环境只是python包的虚拟环境。我被困在我的脑海里,就像一台虚拟机。知道了。VENV内部的所有python包和外部的所有东西。谢谢我对这一切都不熟悉。