python打包工具distutils的使用

2021-07-02 17:26:04 字數 1607 閱讀 3433

執行python setup.py sdist既可以打包

from distutils.core import setup

setup(

name = "dennings",

version = "0.0.2",

author = "shijian",

packages=['denning','templates'],

py_modules=['__init__','config', 'manage', 'settings', 'urls','wsgi'],

data_files=[('ini',['django_wsgi.ini']),('readme',['readme.txt'])]

)

寫完之後,發現靜態檔案都沒有打包。

然後檢視下打包資訊,你會發現:

writing manifest file

'manifest'

表示,他在執行打包的時候,會寫入到這個檔案中。

那麼靜態檔案呢?

在專案目錄下,新增如下配置檔案manifest.in:

檔案內容:

recursive-include templates *

不要忘記寫*

再次執行python setup.py sdist,顯示如下。

reading manifest template 'manifest.in'

writing manifest file

'manifest'

如果你的結果顯示warning,注意檔案的許可權問題。

chmod +x manifest.in

引數說明:

1、name

site-package安裝目錄下的egg檔案:/usr/lib64/python2.6/site-packages/cython_build_test-0.0.0-py2.6.egg-info,如果不指定,將會與unknow命名:/usr/lib64/python2.6/site-packages/unknown-0.0.0-py2.6.egg-info

2、packages告訴distutils需要處理那些包(包含init.py的資料夾)

3、package_dirs告訴distutils哪些目錄下的檔案被對映到哪個原始碼包。乙個例子:package_dir = ,表示「root package」中的模組都在lib目錄4、ext_modules是乙個包含extension例項的列表,extension的定義也有一些引數,定義如下

5、ext_package定義extension的相對路徑

6、requires定義依賴哪些模組

7、provides定義可以為哪些模組提供依賴

8、scripts指定python原始碼檔案,可以從命令列執行。在安裝時指定―install-script

9、package_data通常包含與包實現相關的一些資料檔案或類似於readme的檔案。如果沒有提供模板,會被新增到manifest檔案中。

10、data_files指定其他的一些檔案(如配置檔案)

python打包工具比較

前一段用python寫了點小工具,希望能給同事用,這裡總結一下python的打包以及構建的方法。首先是一些需要安裝依賴包的方法,這也是比較推薦的正統的方法。在setup.py檔案中寫明依賴的庫和版本,注意需要提前安裝setuptools,然後執行 python setup.py install檔案大...

Python打包工具比較

solution windows linux os x python 3 license one file mode zipfile import eggs pkg resources support bbfreeze yesyes yesno mitno yesyes yespy2exe yesn...

python打包工具pyinstaller的用法

pyinstaller是乙個很好用的python打包工具,在windows環境下可以將python指令碼打包成乙個exe可執行檔案,並且指令碼中所依賴的各種第三方庫在打包時候都會被統一處理到一起,這樣打包成的exe檔案就可以在沒有安裝這些庫的電腦上執行,甚至也可以在沒有安裝任何python環境的電腦...