我有一些夾具目錄包含xml文件,我希望在使用bdist_rpm
構建RPM時將其包含在我的python項目中。我想我可以通過MANIFEST.in做一個recursive-include * *
,但是,它不包含除* .py文件以外的任何內容。無論如何bdist_rpm包含非python文件或特別包含* .xml文件?使用setuptools在RPM中包含非python文件
4
A
回答
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
,看起來像這樣:
recursive-include * *.xml
如果你想將它們安裝到Python庫之外的特定文件系統的位置,我不知道,如果你能做到這一點通過setup.py
。
3
您可以使用設置的參數data_files
來做你所需要的。事情是這樣的:
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
相關問題
- 1. 使用setup.py包含非Python文件
- 2. 使用setup.py包含非Python文件
- 3. 如何將靜態文件包含到setuptools中 - python包
- 4. 修復rpm/setuptools包裝的權限
- 5. 使用Python比較RPM軟件包
- 6. setuptools包含構建
- 7. 在setup.py中包含靜態數據(setuptools)
- 8. 使用rpm-maven-plugin時,如何在名稱中包含空格的文件?
- 9. 我如何迴歸/功能測試在Python包中包含非python文件?
- 10. 使用setuptools構建包時應該包含測試和.pyc文件嗎?
- 11. 在Python中包含外部文件
- 12. 在Python中包含requirements.txt文件
- 13. Python:使用setuptools將文件/模塊分發到另一個包中
- 14. 構建RPM來安裝.desktop文件,其中包含MimeType
- 15. Python setuptools - 維護子文件夾中的文本文件引用?
- 16. 使用Python從包含非JSON聲明的.js文件中提取JSON?
- 17. 使用包含在hosts文件中
- 18. 創建僅包含所需軟件包的RPM軟件包
- 19. 如何在setuptools包中包含VCS信息
- 20. 在python-eve中不能包含模型,除非在運行py文件中
- 21. setuptools:包數據文件夾位置
- 22. setuptools的:包含`bdist`但不能以`sdist`
- 23. Python在Lion上包含文件?
- 24. 在centos中安裝python setuptools
- 25. python包中不包含屬性文件(ini文件)
- 26. 無法創建setuptools rpm:錯誤:在一行上的兩個文件
- 27. 包含在頭文件中
- 28. 包含在頭文件中
- 29. 在web.xml中包含文件
- 30. 在Codeigniter中包含文件