<p>这个问题提出来已经有一段时间了。我也面临类似的问题。下面的步骤说明如何更快地完成。在</p>
<p>因为pydiction.py不能递归地解析包,我不得不使用find和vi为Django构建一个包列表。假设您已经在<code>/usr/local/lib/python2.6/dist-packages/django.</code>中安装了django,然后执行以下操作:</p>
<pre><code>cd /usr/local/lib/python2.6/dist-packages
find django -type d > /var/tmp/django_pkgs.sh
</code></pre>
<p>打开django_包装.sh在vim中删除所有包含媒体、静态、模板、gis、fixture、tests、local、localflavor等的行。从vim控制台本身执行以下操作:</p>
^{pr2}$
<p>一旦从列表中删除了所有不需要的文件,请将all/替换为。在vim控制台内执行以下操作:</p>
^{3}$
<p>这将把文件路径转换为完全限定的Python模块名。然后用空白替换所有换行符。在vim控制台内执行以下操作:</p>
<pre><code>%s/\n/ /
</code></pre>
<p>注意,最后两个正斜杠之间只有一个空格字符。
现在,所有模块名称都列在一行中。现在添加#!/文件第一行的bin/bash。这样,我们就可以将文件转换为bash脚本。现在在第二行和第三行添加以下内容(正如oivvio在前面的一篇文章中所解释的那样):</p>
<pre><code>export DJANGO_SETTINGS_MODULE=settings
export PYTHONPATH=/path/to/parent/of/settings
</code></pre>
<p>请用django所在的目录替换最后一行中提到的路径设置.py被保留。在</p>
<p>然后在列出django模块的行的开头,添加以下内容</p>
<pre><code>python ./pydiction.py
</code></pre>
<p>这条线现在应该看起来像</p>
<pre><code>python ./pydiction.py django django.contrib django.contrib.redirects ......
</code></pre>
<p>现在退出vim并运行</p>
<pre><code>chmod +x /var/tmp/django_pkgs.sh.
</code></pre>
<p>然后切换到完成dict和pydiction.py保留并执行<code>/var/tmp/django_pkgs.sh</code>。您确实需要对文件complete-dict的写访问权限。如果您的包列表文件是正确的,那么一切都将正常工作。否则,您将在控制台上看到由于导入不存在的django模块而导致的各种错误。要修复它们,请在<code>django_pkgs.sh</code>文件中标识这些条目并手动删除它们。然后再次执行相同的脚本。在</p>
<p>我宁愿<code>pydiction.py</code>对模块进行递归搜索,而不是每个人都手动准备模块列表。也许可以在pydiction中添加-r之类的命令行参数来自动执行此操作。:(</p>