对于打包的应用程序,您如何获得项目名称和路径?

时间:2013-07-20 22:23:31

标签: python django pip django-apps

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

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

然后我根据Advanced tutorial on reusable apps打包我的应用程序,并使用pip将其安装在不同的服务器上。该应用程序安装到site-packages目录。然后我可以将应用程序添加到新项目的INSTALLED_APPS列表中,我可以在Web浏览器等中查看我的应用程序。

我无法弄清楚如何在我的附加python脚本中插入项目的名称和位置。

我尝试使用pip install -t projectfolder app.tar.gz绕过它,手动设置项目名称,并假设项目路径是我脚本上方的两个文件夹,它可以正常工作。

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

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

我搜索并搜索了一个答案。大多数教程,答案和博客文章似乎都赞成从vcs中检出项目的一个版本(包括应用程序),但我的用户不一定会被我知道,我宁愿打包他们的应用程序下载并使用。

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

任何帮助,建议,指示信息已经在那里感激的地方。

1 个答案:

答案 0 :(得分:-1)

引用@ashwoods:

  

如果您只是发布一个可重复使用的应用程序,您应该让用户管理项目的打包,python路径等。如果您正在分发一个功能项目,那么让您的项目成为python模块并让它们安装。