如何将django模块添加到pydiction字典?
我正在尝试使用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 我收到此错误: 无法导入:(…).不支持按文件名导入. 谢谢! Pydiction: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并删除包含媒体,静态,模板,gis,fixtures,tests,locale,localflavor等的所有行.在vim中,它很容易.从vim控制台本身执行以下操作: :g/media/d :g/static/d :g/templates/d .... .... .... 从列表中删除所有不需要的文件后,请替换all / with.从vim控制台中执行以下操作: :%s!/!.!g 这会将文件路径转换为完全限定的Python模块名称.然后用空格替换所有换行符.在vim控制台中执行以下操作: %s/n/ / 请注意,最后两个正斜杠之间只有一个空格字符. 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中以自动执行此操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |