2024-05-01 22:00:39 发布
网友
我尝试使用pydiction在VIM编辑器中自动完成Python/Django语句。在
当我尝试添加django模块以完成dic时,请使用以下命令:
python pydiction.py /usr/lib/pymodules/python2.6/django
或者:
我收到这个错误:
无法导入:(…)。不支持按文件名导入。在
谢谢!在
措辞:http://www.vim.org/scripts/script.php?script_id=850
因为某种原因
python pydiction.py django
不会添加django的子模块
我要做的是:
然后我必须分别添加django的每个子模块
等等。很无聊,但很管用
这个问题提出来已经有一段时间了。我也面临类似的问题。下面的步骤说明如何更快地完成。在
因为pydiction.py不能递归地解析包,我不得不使用find和vi为Django构建一个包列表。假设您已经在/usr/local/lib/python2.6/dist-packages/django.中安装了django,然后执行以下操作:
/usr/local/lib/python2.6/dist-packages/django.
cd /usr/local/lib/python2.6/dist-packages find django -type d > /var/tmp/django_pkgs.sh
打开django_包装.sh在vim中删除所有包含媒体、静态、模板、gis、fixture、tests、local、localflavor等的行。从vim控制台本身执行以下操作:
一旦从列表中删除了所有不需要的文件,请将all/替换为。在vim控制台内执行以下操作:
这将把文件路径转换为完全限定的Python模块名。然后用空白替换所有换行符。在vim控制台内执行以下操作:
%s/\n/ /
注意,最后两个正斜杠之间只有一个空格字符。 现在,所有模块名称都列在一行中。现在添加#!/文件第一行的bin/bash。这样,我们就可以将文件转换为bash脚本。现在在第二行和第三行添加以下内容(正如oivvio在前面的一篇文章中所解释的那样):
export DJANGO_SETTINGS_MODULE=settings export PYTHONPATH=/path/to/parent/of/settings
请用django所在的目录替换最后一行中提到的路径设置.py被保留。在
然后在列出django模块的行的开头,添加以下内容
python ./pydiction.py
这条线现在应该看起来像
python ./pydiction.py django django.contrib django.contrib.redirects ......
现在退出vim并运行
chmod +x /var/tmp/django_pkgs.sh.
然后切换到完成dict和pydiction.py保留并执行/var/tmp/django_pkgs.sh。您确实需要对文件complete-dict的写访问权限。如果您的包列表文件是正确的,那么一切都将正常工作。否则,您将在控制台上看到由于导入不存在的django模块而导致的各种错误。要修复它们,请在django_pkgs.sh文件中标识这些条目并手动删除它们。然后再次执行相同的脚本。在
/var/tmp/django_pkgs.sh
django_pkgs.sh
我宁愿pydiction.py对模块进行递归搜索,而不是每个人都手动准备模块列表。也许可以在pydiction中添加-r之类的命令行参数来自动执行此操作。:(
pydiction.py
通过浏览pydiction文档(我不是pydiction用户),您似乎误用了pydiction.py脚本。在
您不应该为导入提供文件名。您应该提供一个模块名,以便创建字典。模块必须已经在pythonpath中。在
所以,如果django在你的pythonpath中,你可以:
因为某种原因
不会添加django的子模块
我要做的是:
^{pr2}$然后我必须分别添加django的每个子模块
^{3}$等等。很无聊,但很管用
这个问题提出来已经有一段时间了。我也面临类似的问题。下面的步骤说明如何更快地完成。在
因为pydiction.py不能递归地解析包,我不得不使用find和vi为Django构建一个包列表。假设您已经在
/usr/local/lib/python2.6/dist-packages/django.
中安装了django,然后执行以下操作:打开django_包装.sh在vim中删除所有包含媒体、静态、模板、gis、fixture、tests、local、localflavor等的行。从vim控制台本身执行以下操作:
^{pr2}$一旦从列表中删除了所有不需要的文件,请将all/替换为。在vim控制台内执行以下操作:
^{3}$这将把文件路径转换为完全限定的Python模块名。然后用空白替换所有换行符。在vim控制台内执行以下操作:
注意,最后两个正斜杠之间只有一个空格字符。 现在,所有模块名称都列在一行中。现在添加#!/文件第一行的bin/bash。这样,我们就可以将文件转换为bash脚本。现在在第二行和第三行添加以下内容(正如oivvio在前面的一篇文章中所解释的那样):
请用django所在的目录替换最后一行中提到的路径设置.py被保留。在
然后在列出django模块的行的开头,添加以下内容
这条线现在应该看起来像
现在退出vim并运行
然后切换到完成dict和pydiction.py保留并执行
/var/tmp/django_pkgs.sh
。您确实需要对文件complete-dict的写访问权限。如果您的包列表文件是正确的,那么一切都将正常工作。否则,您将在控制台上看到由于导入不存在的django模块而导致的各种错误。要修复它们,请在django_pkgs.sh
文件中标识这些条目并手动删除它们。然后再次执行相同的脚本。在我宁愿
pydiction.py
对模块进行递归搜索,而不是每个人都手动准备模块列表。也许可以在pydiction中添加-r之类的命令行参数来自动执行此操作。:(通过浏览pydiction文档(我不是pydiction用户),您似乎误用了
pydiction.py
脚本。在您不应该为导入提供文件名。您应该提供一个模块名,以便创建字典。模块必须已经在pythonpath中。在
所以,如果django在你的pythonpath中,你可以:
python pydiction.py django
相关问题 更多 >
编程相关推荐