正确的方式添加独特的库到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上添加类似库的推荐方式是什么?
谢谢。
答
一种方法是将库包含在存储库本身中,您可以从中导入它们。这意味着只需将每个库的实际文件夹移动到主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?)。
你想保持这些库的秘密吗? – Mykel 2014-10-20 07:33:11