日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 服務器 > python setup

python setup

來源:程序員人生   發布時間:2016-07-23 10:27:26 閱讀次數:5895次

python setup

使用Python以來,基本不可回避的就是setup.py文件,由于我們要安裝各種各樣的python軟件或其它第3方package,但是常常使用python setup.py install進行安裝,卻不甚明白該文件的工作原理。由于目前工作觸及了openstack,1個基于python的云操作系統,因此,理解1些python的基本知識是必須要的。故找時間了解了基本的python setup.py文件的制作。

1、1個簡單的setup.py文件:

比如,我們常常使用的1個SSHpackageparamiko,其用于建立基于ssh協議的會話,下載地址為:https://github.com/paramiko/paramiko

打開其中的setup.py文件,簡單注釋,以下所示:

[python] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. import sys  
  2. from setuptools import setup            # setuptool工具  
  3.   
  4.   
  5. if sys.platform == 'darwin':  
  6.     import setup_helper  
  7.     setup_helper.install_custom_make_tarball()  
  8.   
  9.   
  10. # Version info -- read without importing  
  11. _locals = {}  
  12. with open('paramiko/_version.py') as fp:    # 獲得paramiko文件的version號,注冊到paramiko中  
  13.     exec(fp.read(), None, _locals)  
  14. version = _locals['__version__']             # 寫入到dict中  
  15.   
  16. # 介紹:https://docs.python.org/3/distutils/setupscript.html  
  17. setup(  
  18.     # meta-data數據,另外還有maintainer,maintainer_email,  
  19.     # 其中name、version、url是必須的  
  20.     name = "paramiko",                          # package name  
  21.     version = version,                          # package version  
  22.     description = "SSH2 protocol library",      # 扼要描寫  
  23.     long_description = longdesc,                # 1般用于讀取readme.txt文件的內容。。。在package發布到pypi上的時候,這項是必須的,作為package介紹  
  24.     author = "Jeff Forcier",                    # pacakge author  
  25.     author_email = "jeff@bitprophet.org",       # author's email  
  26.     url = "https://github.com/paramiko/paramiko/",  # 下載地址  
  27.     packages = [ 'paramiko' ],                  # 安裝包,這里會去檢索paramiko/__init__.py文件。。。也就是告知distutils時需要處理哪些包  
  28.     license = 'LGPL',                           # license授權  
  29.     platforms = 'Posix; MacOS X; Windows',      # 平臺  
  30.     # classifiers分類  
  31.     classifiers = [  
  32.         'Development Status :: 5 - Production/Stable',  
  33.         'Intended Audience :: Developers',  
  34.         'License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)',  
  35.         'Operating System :: OS Independent',  
  36.         'Topic :: Internet',  
  37.         'Topic :: Security :: Cryptography',  
  38.         'Programming Language :: Python',  
  39.         'Programming Language :: Python :: 2',  
  40.         'Programming Language :: Python :: 2.6',  
  41.         'Programming Language :: Python :: 2.7',  
  42.         'Programming Language :: Python :: 3',  
  43.         'Programming Language :: Python :: 3.2',  
  44.         'Programming Language :: Python :: 3.3',  
  45.         'Programming Language :: Python :: 3.4',  
  46.         'Programming Language :: Python :: 3.5',  
  47.     ],  
  48.     # 依賴包,有幾種符號  
  49.     install_requires=[  
  50.         'cryptography>=1.1',  
  51.         'pyasn1>=0.1.7',  
  52.     ],  
  53. )  


Setup腳本是利用distutils進行編譯、發包、安裝模塊的主要腳本。Setup主要的目的是將我們的發布包依照distutils描寫的方式組織,方便開發安裝。

其實,在setup.py文件中,主要包括以下內容:

S1、列出所有的packages,使用關鍵字packagespackage_dir兩個;

S2、列出所有的依賴模塊,使用py_modules;

S3、列出擴大模塊,包括擴大名和包、源代碼文件、預處理選項如includelibrary選項,和其它的1些選項;

S4、文件發布版與依賴包的關系,使用==>=!=<

S5、直接安裝scripts文件,使用scripts關鍵字;

S6、安裝package data,使用package_data

S7、安裝1些其他文件,使用data_files

S8、額外的meta-data數據,包括versionnameauthorclassifiers等,網址上介紹了meta-data數據的東西,這個是setup.py文件中必須的參數:

 

上面的(1)表示該字段是setup文件中必須的。這個就是我們當前的setup文件的編排格式。

2、setup文件使用:

理解了setup.py文件里面的字段含義,那末我們就能夠學習setup文件的使用了,其主要有以下幾種方式:
python setup.py build #編譯
python setup.py install    #安裝,最基本的安裝方式
python setup.py sdist     #制作分發包,制作1個源碼包,格式為zip/tar.gz

python setup.py bdist_egg     #制作1個2進制分發包
python setup.py bdist_wininst #制作windows下的分發包exe程序
python setup.py bdist_rpm #制作linux下的rpm包,需要rpm程序支持

下面我們開始編寫1個setup.py文件,內容以下:


[python] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. from distutils.core import setup  
  2. setup(  
  3.     name = 'myfirsttest',  
  4.     version = '1.0',  
  5.     py_modules = ['myfirsttest']  
  6. )  


履行python setup.py sdist后,會生成1個文件包,里面會有對應的源碼包:



到時候,客戶端拿到這個緊縮包后,解壓,并履行python setup.py install就能夠進行安裝。

3、setup.cfg文件:

Stackflow上的解釋:

http://stackoverflow.com/questions/27077355/how-to-use-setup-cfg-instead-of-setup-py-with-python⑵⑺

The problem is that the setup.cfg file does not do what you want. It does not provide parameters to the setup function. It is used to supply parameters to the commands that setup.py makes available. You can list the supported commands with setup.py --help-commands. You should see something like:

Setup.cfg其實不是setup函數中的參數,而是setup.py文件中的1些參數,可使用setup.py --help-commands命令查看:

 

這只是python setup.py的參數,但是這其實不是直接需要寫入setup.cfg文件中的。具體的,還要再繼續查看,比如,sdist命令可以使用的參數以下:

 

可以看到,當我們需要制作源碼的時候,可使用verbosequiet等參數,這就是我們需要寫入setup.cfg文件中的。

setup.cfg的文件中是依照section去處理的,比如:

比如,當我們setup.cfg中以下時:

 

當我們履行python setup.py build安裝的時候,實際履行的是以下命令:

 

參考:https://docs.python.org/2/install/index.html#distutils-configuration-files

4、distutils介紹:

setuptool通過封裝distutils,簡化了package的安裝進程。Distutils,全稱為:Python

Distribution Utilities,從python 1.6以來,distutils已成為python標準庫的1部份,極大的簡化了用戶安裝新模塊、第3方包和標準工具,并且創建這些distribution的方式也極大的簡化了。Distutils既為支持RPMlinux提供了創建RPM的方式,也提供了制作windows exe的方式。Distutils通過將setup.pysetup.cfgsource code、第3方編譯包集成在1起,做成可用的package

Distutils統1了linuxwindowspython的安裝方式,其實不辨別是rpm包還是tarball方式,只是履行python setup.py install便可進行安裝。并且,可以令不同的開發者向同1塊package進行工作。

1般來說,我們會順次履行buildinstall,其中build會將所有的源文件進行編譯,并放到同對應目錄下,生成build/lib文件,源文件不限于python,也能夠是C/C++。如果斟酌到build的速度,可使用--buuld-base指定build的目錄。編譯完成后,使用install安裝,安裝的進程,是將該目錄下的文件拷貝到對應的代碼目錄下。

我們默許的安裝目錄是:

 

如果是默許的話,1般是標準的python安裝目錄,linux下1般prefixexec-prefix/usr,而windows下是C:\Program Files\Python,可以采取以下方式查詢安裝目錄:

 

我們可使用以下參數去指定install的方式:

S1--userlinux下的用戶選擇,確保該用戶對安裝目錄有權限;

S2--home:指定安裝目錄:

 

可以與--install-purelib--install-scripts--install-platlib--install-data組合使用,確認各個子條目的安裝目錄。

S3--prefix

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 男女免费视频网站 | 国产精品久久久久永久免费观看 | 日韩中文在线视频 | 国产51页 | 精品一区国产 | 懂色一区二区三区在线播放 | 国产99免费 | 久久综合影院 | 黄色网址| 蜜桃久久av| 免费在线观看av片 | 爱爱免费 | 国产4区 | 国产黄色一级片 | 日韩免费在线 | 亚洲精品乱码久久久久久 | 国产亚洲二区 | 在线观看欧美激情 | 日本免费视频 | 国产日韩精品在线 | 国产免费一区二区三区 | 亚洲高清av在线 | 久久国产精品一区二区三区 | 成人一二三区 | 日韩av综合在线 | 91综合在线 | 精品久久久久久久久久久院品网 | 日韩中文在线 | 国产精品久久久久久久久免费 | 欧美日韩视频免费观看 | a毛片免费视频 | 最近中文字幕mv在线资源 | 亚洲欧美日韩中文视频 | 在线免费观看黄色片 | 亚洲欧美在线免费 | 免费a视频| 欧美一级黄色免费电影 | 国产综合第一页 | 精品国产乱码久久久久久丨区2区 | 亚州精品天堂中文字幕 | 狠狠色狠狠色终合网 |