擅长:python、mysql、java
<p><code>glob</code>答案的问题是它只做了这么多。一、 它不是完全递归的。<code>copy_tree</code>答案的问题是,在卸载时将留下复制的文件。</p>
<p>正确的解决方案是递归的,它允许您在setup调用中设置<code>package_data</code>参数。</p>
<p>我写了一个小方法:</p>
<pre><code>import os
def package_files(directory):
paths = []
for (path, directories, filenames) in os.walk(directory):
for filename in filenames:
paths.append(os.path.join('..', path, filename))
return paths
extra_files = package_files('path_to/extra_files_dir')
setup(
...
packages = ['package_name'],
package_data={'': extra_files},
....
)
</code></pre>
<p>你会注意到当你做一个<code>pip uninstall package_name</code>时,你会看到你的附加文件被列出(与包一起跟踪)。</p>