0

我编写了一个 django 应用程序来将一些数据存储在数据库中,显示、过滤和导出数据。我编写了一些额外的 python 例程来提取源数据(从 DICOM 文件)并将其插入数据库。

我已将这些例程作为模块放置在我的应用程序中的一个文件夹中,它们首先将项目目录放在 sys.path 上并将值设置DJANGO_SETTINGS_MODULE为指向项目 settings.py 文件。它们可以从 shell 或另一个 python 例程中调用。

然后,我按照可重用应用程序的高级教程打包了我的应用程序,并使用 pip 将其安装在不同的服务器上。该应用程序被安装到 site-packages 目录。然后我可以将应用程序添加到新项目的 INSTALLED_APPS 列表中,并且可以在 Web 浏览器等中查看我的应用程序。

我不知道如何在我的其他 python 脚本中插入项目的名称和位置。

我试图绕过它pip install -t projectfolder app.tar.gz,手动设置项目名称并假设项目路径是我的脚本上方的两个文件夹,这有效。

但是,当我有新版本时,我无法升级应用程序,因为pip只是尝试写入现有文件夹并失败,因为它预计它不存在。它也没有将其列为已安装的应用程序。

此外,如果我的脚本隐藏在 python 站点包中,虽然我可以轻松导入模块,但我不能轻松地从命令行(或 shell 脚本)调用它。

我已经搜索并搜索了答案。大多数教程、答案和博客文章似乎都倾向于从 vcs 中查看项目的版本(包括应用程序),但我的用户不一定会为我所知,我宁愿为他们打包应用程序下载和使用。

似乎它可能包含部分答案的一件事是Fabric,可能首先使用它来创建 django 项目,因此知道它的名称和安装位置。但是,我认为这可能会限制我使用 *nix 操作系统,我希望我的用户能够在 Windows 上安装。

Any help, suggestions, pointers to where the information is already out there gratefully received.

4

1 回答 1

-1

Quoting @ashwoods:

If you are just publishing a resusable app, you should let the users manage the packaging, python path, etc... of the project. If you are distributing a functional project, then make your project a python module and have them install that.

于 2013-08-06T20:54:00.370 回答