Django-Heroku:未找到自定义PIP模块

dkqlctbz  于 2023-05-23  发布在  Go
关注(0)|答案(1)|浏览(148)

我正在尝试使用Heroku部署我的Django应用程序。我之前已经成功部署了这个应用程序,但现在随着我最近的更改,应用程序崩溃了。我用pip创建并安装了自己的软件包,这些软件包安装在我的虚拟环境中,在整个应用程序中使用。当在localhost上运行站点时,本地自定义包可以正常工作。问题是,当应用程序部署时,对Heroku日志的检查显示Heroku无法找到我的自定义模块。

运行Heroku logs --tail

023-05-20T13:56:21.947973+00:00 app[web.1]:ModuleNotFoundError:没有名为“project_utils”的模块
如何让Heroku检测我的自定义软件包?

  • 文件夹结构 *

  • 需求.txt*
Django==4.1.7
django-heroku==0.3.1
...
-e git+https://git.heroku.com/legosite.git@6a66465a8f9497b7f91091e9bc012e54284aa2fe#egg=scripts&subdirectory=local_packages\scripts
-e git+https://git.heroku.com/legosite.git@6a66465a8f9497b7f91091e9bc012e54284aa2fe#egg=project_utils&subdirectory=local_packages\project_utils
-e git+https://git.heroku.com/legosite.git@6a66465a8f9497b7f91091e9bc012e54284aa2fe#egg=config&subdirectory=local_packages\config

运行pip install -r requirements.txt

错误:config from git+https:git.heroku.com/legosite.git@6a66465a8f9497b7f91091e9bc012e54284aa2fe#egg=config&subdirectory=local_packagesconfig(from -r requirements.txt(line 7))doesn't appear to be a Python project:既未找到'setup.py'也未找到'pyproject.toml'。
它说它找不到一个setup.py文件,而我创建的每个本地包都有一个。
此外,在错误消息中,包含subdirectory=local_packagesconfig的部分在local_packagesconfig的目录和子目录之间没有正斜杠。

  • 本地包文件结构示例 *

dsekswqp

dsekswqp1#

这里有一个替代建议。
当您在Heroku上托管Python应用程序时,您需要requirements.txt,因为Heroku需要它来安装项目的所有依赖项,这些依赖项应该能够通过pip命令安装。如果它是一个自定义包,它需要在Python Package Index中可用。如果没有,你应该这样做。不要把你的包放在虚拟环境中,只要在project_utils文件夹和local_packages文件夹中有一个__init__.py文件,这将使它成为一个包,你可以使用``import```语法从它导入任何你需要的东西。另外注意,在执行此操作时,请从requirements.txt文件中删除自定义包。
希望能帮上忙。

相关问题