操作系统:CentOS,Redhat
对于Django和python,我们基本上使用python和Django框架构建了一个监控工具。下面是项目文件夹结构。
|-- Makefile
|-- monitor-pycodes
`-- web
|-- content
|-- __init__.py
|-- manage.py
|-- monitor_templ
| |-- __init__.py
| |-- templates
| |-- templatetags
| |-- urls.py
| `-- views.py
|-- packmonitor.wsgi
|-- settings.py
`-- urls.py
没有提到某些文件夹的内容来简化视图。
我们使用Makefile将代码复制到系统文件夹,如下所示
“monitor pycodes”中的所有python代码-->/usr/lib/python2.7/site-packages/packmonitor/并编译它
“web”->/var/www/packmonitor for web UI中的Django模板。
脚本,如packmontior&packmonitord to-->/usr/bin
当在项目目录中运行make install时,将执行上述复制过程并启动应用程序。
我的雇主不希望从源代码安装此工具。
如何将此安装从源转换为包安装?
谢谢,
莫汉
最佳答案
Django是一个Python包,通常使用类似于virtualenv
的工具从PyPI下载并安装到虚拟环境中,或者在Python 3.3+,venv
中使用Python打包。您可能还有一些其他依赖项,例如,用于与数据库通信的Python包。
您可以在目录结构中创建虚拟环境并进行安装。只要在要部署到的同一操作系统上创建虚拟环境,就很可能能够将包的虚拟环境作为部署负载的一部分包含进来。例如,我在CentOS 7.6中使用Vagrant进行开发,我的生产服务器运行rhel7.6。我确保yum
安装的任何底层需求在Vagrant for development上都与在我的生产服务器上相同。
这将允许您将.wsgi
文件指向与其余代码一起部署的虚拟环境。
不过,只需考虑一些事情;这与大多数文档化的部署最佳实践背道而驰。您还提到正在运行Python2.7;对Python2.7的支持将在几个月后结束。它还将限制您运行Django 1.11,它也只有几个月的支持。这意味着不再有安全更新或错误修复。Django 2.0只支持Python 3.4及更高版本。
如果您花时间进行部署,可能值得考虑升级到Python3.7和Django 2.2(一个长期的支持版本,保证有三年的安全更新)。上面描述的部署方法(将虚拟环境作为有效负载的一部分)应该与Python和Django的新版本一起使用。升级现在需要一点工作,但在危机发生之前,通过偿还一些技术债务作为维护,可能会为您节省一卡车的痛苦。
祝你好运!
关于python - 如何将Django源安装转换为类似安装的软件包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57836964/