我有一堆包含 python 函数的文件,在网络服务 apache2 中使用, 它们都是从 PHP 作为 shell 脚本调用的,只需使用“python3 'file' 'args'”(不带 -m,即)以及通过JSON字符串返回数据给PHP,都调试了很久了, 并且工作良好。
它们都在一个目录中,并且大多数只需使用
导入其他文件 from file_with_lower_level_functions import gimme_this_table
许多导入的函数又会导入其他函数,并且某些导入链可能有 4 或 5 个链接长。
尝试将其导入 Django 是一场噩梦。我所有的“来自”都得到回复 通过“manage.py check”和“未找到模块”。我确实通过改变获得了部分成功 顶层从上面到
from .file_with_lower_level_function import gimme_this_table
添加前导点。但首先,像在每个模块中那样更改“from”将使它们无法工作 在旧的情况下,我不想做这个改变。
接下来,当我的一个函数导入另一个函数时,这会导致第二个链接出现问题: 对第二个应用相同的解决方法不起作用:“嗯嗯!找不到模块”
这种方法可以用 Django 实现吗?有没有一个通用的表格可以给我 可以在 django 和 PHP 中使用的代码吗?
我想对 Django 使用与 PHP 相同的技巧,即调用我的代码 作为 shell 脚本,这可能会起作用;但由于 Django is 已经是 python, 这对我来说没有多大吸引力:我会辛苦工作却什么也学不到。
我尝试从 django 视图调用我的旧函数,我希望它能够工作 没有(很多)问题。
是的,我收到的评论给了我线索。我希望这是一个答案,我会投票的。
设置要在 Django 视图中调用的自己的 Python 代码(至少在我的情况下)只是一个简单的问题:
将我的模块放在一个目录中(甚至不需要有趣的init.py空文件)
告诉 Django 这个目录的绝对路径,可以使用任一
export PYTHONPATH=/home/my_own_self/my_directory
如果您正在运行 Django 自己的运行服务器或将其粘贴在此处的末尾:
WSGIDaemonProcess youpi_server python-home=/(some path)/django_venv python-path=(...path to views...):/home/my_own_self/my_directory
如果您在 Apache 中提供服务,并且
from my_own_module import my_own_function
其中 my_own_module.py 是 my_directory 和 my_own_function 中的文件
其中有一个“def”。谢谢阿卜杜勒·阿齐兹·巴尔卡特!