gpt4 book ai didi

python - 如何将 Django 模块添加到 pydiction 字典?

转载 作者:太空宇宙 更新时间:2023-11-03 13:24:40 25 4
gpt4 key购买 nike

我正在尝试使用 pydiction 在 VIM 编辑器中自动完成 Python/Django 语句。

当我尝试将 django 模块添加到 complete-dic 时:

python pydiction.py /usr/lib/pymodules/python2.6/django

或:

python pydiction.py /usr/lib/pymodules/python2.6/django/__init__.py

我收到此错误:

无法导入:(...)。不支持按文件名导入。

谢谢!

字典:http://www.vim.org/scripts/script.php?script_id=850

最佳答案

提出这个问题已经有一段时间了。我遇到了类似的问题。以下步骤说明了如何快速完成。

由于 pydiction.py 不递归解析包,我不得不使用 find 和 vi 为 Django 构建包列表。假设你已经在 /usr/local/lib/python2.6/dist-packages/django. 中安装了 django 然后执行以下操作:

cd /usr/local/lib/python2.6/dist-packages
find django -type d > /var/tmp/django_pkgs.sh

在 vim 中打开 django_pkgs.sh 并删除所有包含 media、static、templates、gis、fixtures、tests、locale、localflavor 等的行。在 vim 中,这很容易。从 vim 控制台本身执行以下操作:

:g/media/d
:g/static/d
:g/templates/d
....
....
....

从我们的列表中删除所有不需要的文件后,将所有/替换为 .在 vim 控制台中执行以下操作:

:%s!/!.!g

这会将文件路径转换为完全限定的 Python 模块名称。然后用空格替换所有换行符。在 vim 控制台中执行以下操作:

%s/\n/ /

请注意,最后两个正斜杠之间有一个空白字符。现在您已将所有模块名称列在一行中。现在在文件的第一行添加#!/bin/bash。这样,我们将文件转换为 bash 脚本。现在在第二行和第三行添加以下内容(如 oivvio 在之前的一篇帖子中所解释的那样):

export DJANGO_SETTINGS_MODULE=settings
export PYTHONPATH=/path/to/parent/of/settings

请将最后一行中提到的路径替换为保存 django settings.py 的目录。

然后在列出 django 模块的行的开头,添加以下内容

python ./pydiction.py

这一行现在应该是这样的

python ./pydiction.py django django.contrib django.contrib.redirects ......

现在退出vim并运行

chmod +x /var/tmp/django_pkgs.sh.

然后切换到complete-dict和pydiction.py所在的目录,执行/var/tmp/django_pkgs.sh。您确实需要对文件 complete-dict 的写入权限。如果你的包列表文件是正确的,一切都会正常工作。否则,您会在控制台上看到由于导入不存在的 django 模块而导致的各种错误。要修复它们,请在您的 django_pkgs.sh 文件中识别此类条目并手动删除它们。然后再次执行相同的脚本。

我更喜欢 pydiction.py 对模块进行递归搜索,而不是每个人都手动准备模块列表。可能像 -r 这样的命令行参数可以添加到 pydiction 来自动执行此操作。 :(

关于python - 如何将 Django 模块添加到 pydiction 字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2081345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com