正确的方式添加独特的库到Heroku(Django应用程序)

正确的方式添加独特的库到Heroku(Django应用程序)

问题描述:

我想部署一个django应用程序到heroku。
我有没有PyPI上的几个Python库,所以我不能只是宣布他们requirements.txt文件
在地方发展我用:正确的方式添加独特的库到Heroku(Django应用程序)

import sys  
sys.path += [os.path.dirname(os.path.dirname(__file__))+"\\project-name\\lib"] 

内manage.py和它的工作原理那里很好。
显然它不能在heroku上工作,我得到导入错误。

在heroku上添加类似库的推荐方式是什么?

谢谢。

+0

你想保持这些库的秘密吗? – Mykel 2014-10-20 07:33:11

一种方法是将库包含在存储库本身中,您可以从中导入它们。这意味着只需将每个库的实际文件夹移动到主Django项目文件夹中即可。

- DjangoProject 
    - AppFolder1 
    - AppFolder2 ... 
    - python-library1 
    - python-library2 

当存储库被推送到Heroku时,您的库将作为项目的一部分被推送。

从这里,你的视图/模型等内这些库的进口任何应用程序的文件夹中会

import python-library1 
from python-library2 import a_function, a_class 

为什么我建议上面的目录结构的原因是,最有可能的,你就不会去返回并更改任何进口代码。

如果您有大量的库,并希望简化direcory结构,只需在主DjangoProject文件夹中创建一个名称为“importables”的文件夹,并将import语句更改为诸如..之类的内容。

from importables import python-library1 
from importables.python-library2 import a_function, a_class 

这不完全是美丽的,但一个快速完成工作的方法。如果您不确定要包含哪些库,可以使用Python快速查看它们的位置(How do I find the location of Python module sources?)。