我正在爲Python項目編寫setup.py文件,以便我可以分發它。其目的是最終創建一個.egg文件,但我試圖首先使用distutils和常規的.zip來工作。爲什麼我不能使用distutils將這些數據文件包含在Python發行版中?
這是一個Eclipse的PyDev項目,我的文件結構是這樣的:
ProjectName
src
somePackage
module1.py
module2.py
...
config
propsFile1.ini
propsFile2.ini
propsFile3.ini
setup.py
這裏是到目前爲止我setup.py代碼:
from distutils.core import setup
setup(name='ProjectName',
version='1.0',
packages=['somePackage'],
data_files = [('config', ['..\config\propsFile1.ini',
'..\config\propsFile2.ini',
'..\config\propsFile3.ini'])]
)
當我運行這個(與sdist爲一個命令行參數),一個.zip文件會與所有的python文件一起生成,但不包括配置文件。我認爲這個代碼:
data_files = [('config', ['..\config\propsFile1.ini',
'..\config\propsFile2.ini',
'..\config\propsFile3.ini'])]
表明,這3個指定配置文件應該被複制到zip分發了「config」目錄。爲什麼這段代碼不能完成任何事情?我究竟做錯了什麼?
(我也曾嘗試與配置文件的路徑玩耍......但似乎沒有任何幫助。將Python中拋出一個錯誤或警告,如果路徑是不正確的/沒有被發現的文件?)
謝謝。我得到以下錯誤:'警告:找不到匹配'config \ *''的文件。我已經嘗試改變爲.. \ config \ *,但是這也沒有幫助...任何想法? – froadie 2010-06-03 16:02:02
'\'和'*'之間有空格。嘗試刪除? 否則嘗試使用正斜槓。我使用了正斜槓,但因爲您似乎已經使用了反斜槓,所以我在這裏用'\'替換了'/'。不過,我發現在Windows上使用/並不會真的引起任何問題。 如果實在不行,就檢查你是否在正確的軌道上通過硬編碼文件名進去,如: 包括配置/ propsFile1.ini 包括配置/ propsFile2.ini #等... – Umang 2010-06-03 16:55:55
空間只有因爲格式化 - 當我將它們放在一起時,由於某種原因隱藏了斜線。更改爲正斜槓並沒有什麼區別... Python似乎會自動將其轉換回來,同樣的錯誤消息。在單個文件上得到同樣的錯誤...... :(任何線索有什麼問題嗎?它是一個路徑問題嗎? – froadie 2010-06-03 17:07:06