我正在尝试将django应用程序部署到heroku 我有几个不在PyPi上的python库,因此我不能在requirements.txt文件中声明它们 在本地开发中,我使用过:
import sys
sys.path += [os.path.dirname(os.path.dirname(__file__))+"\\project-name\\lib"]
在manage.py中,它在那里工作正常。
显然它在heroku上不起作用,导致导入错误。
在heroku上添加类似库的推荐方法是什么?
感谢。
答案 0 :(得分:0)
一种方法是在存储库本身中包含库,您可以从中导入它们。这意味着只需将每个库的实际文件夹移动到主Django项目文件夹中。
- DjangoProject
- AppFolder1
- AppFolder2 ...
- python-library1
- python-library2
当存储库被推送到Heroku时,您的库将作为项目的一部分被推送。
从此处,您在任何应用程序文件夹中的视图/模型等中导入这些库
import python-library1
from python-library2 import a_function, a_class
我建议上面的目录结构的原因是,您很可能不会返回并更改任何导入代码。
如果您有大量的库并且希望保持目标结构更简单,只需创建一个名称为" importables"的文件夹。在主DjangoProject文件夹中,将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?)快速查看其位置的几种方法。