を使用して RPM をビルドするときに、Python プロジェクトに含めたい xml ファイルを含むフィクスチャ ディレクトリがいくつかありますbdist_rpm
。MANIFEST.in に を実行させることでこれを実行できると思っていましたがrecursive-include * *
、*.py ファイル以外は含まれていません。とにかく bdist_rpm に非 python ファイルをパッケージに含めるか、具体的には *.xml ファイルも含めますか?
1819 次
2 に答える
3
data_files
setup のパラメーターを使用して、必要なことを行うことができます。このようなもの:
setup(
...
package_data = { '/usr/share/yourapp/xmls': [ 'xmls/1.xml', 'xmls/2.xml' ] },
...
)
これにより、次のファイルがインストールされます。
/usr/share/yourapp/xmls/1.xml
/usr/share/yourapp/xmls/2.xml
私は通常、次のような関数でファイルのリストを作成します。
def get_xmls():
xmlfiles = []
for filename in os.listdir('xmls/'):
if filename.endswith('.xml'):
xmlfiles.append('xmls/%s' % filename)
return xmlfiles
于 2012-05-09T16:22:35.517 に答える
3
それらをどこにインストールしようとしていますか?このように、パッケージディレクトリ内に配置すると...
myproject/
mypackage/
__init__.py
resources/
file1.xml
file2.xml
...次のように、ファイルでpackage_data
オプションを使用できます。setup.py
from setuptools import setup, find_packages
setup(
name='myproject',
version='0.1',
description='A description.',
packages=find_packages(),
include_package_data=True,
package_data = { '': [ '*.xml' ] },
install_requires=[],
)
*.xml
これにより、任意のパッケージ内の任意のファイルが再帰的に含まれます。これらは、残りのパッケージと共に Python ライブラリ パス内のどこかにインストールされます。MANIFEST.in
次のようなa で同じことができます。
recursive-include * *.xml
それらを Python ライブラリ以外の特定のファイル システムの場所にインストールしようとしている場合、setup.py
.
于 2012-05-02T01:33:44.900 に答える