最初要求是面向外部的应用程序,我们将使用服务器。但是,现在所有代码都已完成,长期愿景已经改变......要求是在没有服务器(物理或远程)的情况下使用面向内的应用程序。
将使用该应用程序的团队将是同一网络上的5个用户,每个用户都将在桌面上单独安装该应用程序。
我的问题是,将这个应用程序部署到每个人的机器上的最佳方式是什么,它们可以轻松地自行安装。如何在不输入python manage.py runserver的情况下始终在每个人的机器上运行应用程序?
答案 0 :(得分:2)
我必须做同样的事情。我的解决方案是使用PyInstaller,它将所有包和文件捆绑到一个整齐的分发文件夹中,其中包含一个可执行文件。
首先,查看this link获取教程。说实话,仅这一点对我来说不起作用,但它可以为你服务。因此,我将在下面记录一些要注意的事项,并从这里继续,好像它完美地适合您。
在您的manage.py文件上运行PyInstaller后,它将为您创建三个新对象:dist文件夹,构建文件夹和myAppName.spec文件。在dist文件夹中是项目的可执行文件。要将此项目部署到其他地方,唯一需要的是dist文件夹(或者甚至只是其中的myAppName文件夹)。只需拉上拉链即可将其发送出去。
dist文件夹中的可执行文件不会仅通过单击它运行,但它仍然需要您键入python manage.py runserver
。为了解决这个问题,我创建了一个可执行文件和modified it's target的快捷方式。因此,如果您的项目的路径为C:\path\to\proj
,则快捷方式的目标将为C:\path\to\proj runserver
。这应该允许您双击快捷方式并运行本地服务器。如果您还想在同一次点击中打开网络浏览器make a batch file。如果您不想打开控制台,try TrayIt。
如果你想在你的项目上重新运行PyInstaller,摆脱那些dist和构建文件夹的速度,但保留.SPEC文件并在其上运行pyinstaller。如果您愿意,它可以帮助您更加具体地了解该过程。
如上所述,当我在我的Django应用程序上运行PyInstaller时,我遇到了一些问题。
dist\myAppName\django\contrib\admin\templates
文件夹。dist/myAppName
文件夹中。只是粘贴它就可以了。excludes
列表中添加了很多模块,这样我的dist文件夹就不算大了。如果您的PyInstaller经历比我的好,请告诉我。我认为我的问题可能是孤立的事例。
答案 1 :(得分:1)