python包安裝及安裝包製作

1. 單文件模塊:直接把文件拷貝到$python_dir/lib  這是類庫目錄(可直接將單文件或單包放在這裏)


2. 多文件模塊,帶setup.py:python setup.py install    卸載時只能手動刪除,一般安裝在系統類庫目錄下

python setup.py install --record files.txt 記錄安裝後文件的路徑 (卸載cat files.txt | xargs rm -rf  刪除這些文件)

3.easy_install 方式

1) 下載ez_setup.py,運行python ez_setup  

2) easy_install packageName 

easy_install package.egg

easy_install *.egg

4.pip 方式

先進行pip工具的安裝:easy_install pip(pip 可以通過easy_install 安裝,而且也會裝到 Scripts 文件夾下。)

安裝:pip install PackageName

更新:pip install -U PackageName

移除:pip uninstall PackageName

搜索:pip search PackageName


5.自制setup.py安裝包

雖然Python的模塊可以拷貝安裝,但是一般情況下推薦製作一個安裝包,即寫一個setup.py文件來安裝。


setup.py文件的使用:

% python setup.py build #編譯

% python setup.py install    #安裝

% python setup.py sdist     #製作分發包

% python setup.py bdist_wininst #製作windows下的分發包

% python setup.py bdist_rpm


setup.py文件的編寫:

setup.py中主要執行一個 setup函數,該函數中大部分是描述性東西,最主要的是packages參數,列出所有的package,可以用自帶的find_packages來動態獲取package。所以setup.py文件的編寫實際是很簡單的。


簡單的例子:

(1).假設你要分發一個叫foo的模塊,文件名foo.py

{import sys 

 def get():

     return sys.path

},

那麼setup.py內容如下:

from distutils.core import setup

#from setuptools import setup, find_packages

setup(name='foo',

      version='1.0',

      py_modules=['foo'],

      )

(2).然後,運行python setup.py sdist爲模塊創建一個源碼包

在當前目錄下,會創建dist目錄,裏面有個文件名爲foo-1.0.tar.gz,這個就是可以分發的包(如果使用命令python setup.py bdist_egg,那麼會在dist目錄中生成foo-1.0-py2.7.egg包,setup.py中第一句引入需要改爲from setuptools import setup)。使用者拿到這個包後,解壓,到foo-1.0目錄下執行:python setup.py install,那麼,foo.py就會被拷貝到python類路徑下,可以被導入使用(如果安裝是egg文件,會把egg文件拷貝到dist-packages目錄下)。



安裝包文件:

(1).假設你要分發mypackage包,將包文件放在script目錄下


那麼setup.py內容如下:

from distutils.core import setup

#from setuptools import setup, find_packages

setup(

name='mypackage',

    version="1.0",

    author="liujin3",

#scripts=["scripts/otpauth.py","scripts/OtpAuthNSF.py"],

packages = ["mypackage",],

package_dir ={ "mypackage": "scripts/mypackage" },

py_modules=['foo',],#包中需要可見的模塊

    description='Implements two-step verification of TOTP',

    long_description=fread('README.rst'),

    license='BSD',

    platforms='any',

    tests_require=['nose'],

    test_suite='nose.collector',

      )

(2).然後,運行python setup.py sdist爲模塊創建一個源碼包

在當前目錄下,會創建dist目錄,裏面有個文件名爲mypackage-1.0.tar.gz,這個就是可以分發的包(如果使用命令python setup.py bdist_egg,那麼會在dist目錄中生成foo-1.0-py2.7.egg包,setup.py中第一句引入需要改爲from setuptools import setup)。使用者拿到這個包後,解壓,到mypackage-1.0目錄下執行:python setup.py install,那麼,foo.py就會被拷貝到python類路徑下,可以被導入使用(如果安裝是egg文件,會把egg文件拷貝到dist-packages目錄下)。


具體細節,參考otpauth-1.0.1.tar.gz的模板


python 包安裝沒有這麼複雜,參考

https://www.cnblogs.com/maociping/p/6633948.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章