python-eggパッケージのいくつかの知識
6274 ワード
Pythonに頻繁に接する人は、サードパーティ製pythonパッケージをインストールする必要がある場合にeasy_を使用する可能性があることに気づくかもしれません.インストールコマンド.easy_Installは、PEAK(Python Enterprise Application Kit)が開発したsetuptoolsパッケージに付いているコマンドで、eggパッケージをインストールするために使用されます.eggパッケージは、現在最も流行しているpythonアプリケーションのパッケージ配置方法です.eggパッケージの作成とインストール方法簡単に分析してみました.
1.1 setuptoolsをインストールするには、まずsetuptoolsツールをインストールします.Debian/Ubuntuではaptを直接使用してインストールできます.ブートez_を介してsetup.pyでインストールします.このブートストラップは、最新バージョンのsetuptoolsをオンラインでダウンロードしてインストールし、ローカルのsetuptoolsを更新することもできます. またはsetuptoolsのeggパッケージをダウンロードしてインストールします.ここで最新バージョンのダウンロードを見ることができます.ダウンロードが完了したらshでインストールします.
easy_を使用できるようになりましたInstallコマンドで他のeggパッケージをインストールしました.
1.2自分のeggバッグを作るにはいつも他の人のeggバッグをインストールして、自分のeggバッグも作りたいのではないでしょうか.はい、次は自分で簡単なeggバッグを作ります.まず工程ディレクトリegg-demoを確立し、setupを初期化する.pyファイル: name nameはeggパッケージの名前であり、パッケージするフォルダを探す名前でもあり、デフォルトはUNKNOWNです. バージョン番号、デフォルト0.0.0 packagesここではsetuptoolsの別の関数find_を使用します.packages,その名の通りfind_packagesは、指定したディレクトリの下にあるファイルをパッケージ化するために使用します. zip_safeのデフォルトはFalseです.これにより、eggパッケージが生成されるたびにプロジェクトファイルの内容がチェックされ、間違いがないことを確認できます.
description,long_などの記述的な属性もありますdescription,author,author_Email,license,keywords,platform,urlなど.埋め込みsetup.pyファイルは次のとおりです.
1.3 eggファイルをpython 2でアンインストールします.6バージョンを例にとると、eggファイルは一般的に/usr/local/lib/python 2にインストールされます.6/dist-packages/ディレクトリの下にeasy-installがあります.pthファイル.インストールされたegg情報を格納します.:
1.1 setuptoolsをインストールするには、まずsetuptoolsツールをインストールします.Debian/Ubuntuではaptを直接使用してインストールできます.
$ sudo apt-get install python-setuptools
手作業でインストールすると、2つの方法があります.$ wget http://peak.telecommunity.com/dist/ez_setup.py
$ sudo python ez_setup.py
更新setuptools::$ sudo python ez_setup.py -U setuptools
$ wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg
$ sudo sh setuptools-0.6c11-py2.6.egg
easy_を使用できるようになりましたInstallコマンドで他のeggパッケージをインストールしました.
1.2自分のeggバッグを作るにはいつも他の人のeggバッグをインストールして、自分のeggバッグも作りたいのではないでしょうか.はい、次は自分で簡単なeggバッグを作ります.まず工程ディレクトリegg-demoを確立し、setupを初期化する.pyファイル:
$ mkdir egg-demo
$ cd egg-demo
$ touch setup.py
$ ls
setup.py
以下は主に充填setupである.py.setup.pyは実はpythonツールパッケージdistutilsのプロファイルで、setuptoolsはdistutilsに基づいて作られています.setup.pyではsetup関数でパッケージ情報を構成します.まずsetuptoolsの関数setupを導入します.setuptoolsのsetupは実はdistutilsのsetup関数で、setupを記入します.pyは次のとおりです.$ cat setup.py
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from setuptools import setup
setup()
ここに書くと、空のeggプロファイルが作成されます.次のコマンドを使用してeggパッケージを生成できます.$ python setup.py bdist_egg
次に、何が生成されたかを見てみましょう.$ ls -F
build/ dist/ setup.py UNKNOWN.egg-info/
には、3つ以上のフォルダが表示されます.distフォルダの下には、UNKNOWN-0.0.0-py 2というeggファイルがあります.6.egg. 産卵成功!まず、このeggファイルのフォーマットを見てみましょう.$ file dist/UNKNOWN-0.0.0-py2.6.egg
dist/UNKNOWN-0.0.0-py2.6.egg: Zip archive data, at least v2.0 to extract
ああ、zip圧縮パッケージだったのか.では、内部構造を見てみましょう.$ unzip -l dist/UNKNOWN-0.0.0-py2.6.egg
Archive: dist/KNOWN-0.0.0-py2.6.egg
Length Date Time Name
--------- ---------- ----- ----
120 2010-12-06 17:04 EGG-INFO/SOURCES.txt
1 2010-12-06 17:04 EGG-INFO/top_level.txt
1 2010-12-06 17:04 EGG-INFO/zip-safe
1 2010-12-06 17:04 EGG-INFO/dependency_links.txt
227 2010-12-06 17:04 EGG-INFO/PKG-INFO
--------- -------
350 5 files
EGG-INFOフォルダが1つしかありません.egg情報ファイルが5つ含まれています.ありません.このegg名は不明で、バージョンは0.0.0です.これは私たちがsetupで何も設定していないからです.明らかに、このeggは何もできません.次に材料を少し入れます.setup.pyでは、setup関数は構成パラメータとして一連の属性を受信します.description,long_などの記述的な属性もありますdescription,author,author_Email,license,keywords,platform,urlなど.埋め込みsetup.pyファイルは次のとおりです.
$ cat setup.py
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from setuptools import setup, find_packages
setup(
name = "demo",
version="0.1.0",
packages = find_packages(),
zip_safe = False,
description = "egg test demo.",
long_description = "egg test demo, haha.",
author = "amoblin",
author_email = "[email protected]",
license = "GPL",
keywords = ("test", "egg"),
platforms = "Independant",
url = "",
)
egg-demoディレクトリの下に上記name名と同じディレクトリdemoを作成し、demoディレクトリの下に__を書きます.init__.pyファイル:$ mkdir demo
$ cat demo/__init__.py
#!/usr/bin/env python
#-*- coding:utf-8 -*-
def test():
print "Hello, I'm amoblin."
if __name__ == '__main__':
test()
eggパケットを再生成した後、eggパケット情報を表示します.$ python setup.py bdist_egg
$ unzip -l dist/demo-0.1.0-py2.6.egg
Archive: dist/demo-0.1.0-py2.6.egg
Length Date Time Name
--------- ---------- ----- ----
121 2010-12-06 17:30 demo/__init__.py
344 2010-12-06 17:46 demo/__init__.pyc
137 2010-12-06 17:46 EGG-INFO/SOURCES.txt
5 2010-12-06 17:46 EGG-INFO/top_level.txt
1 2010-12-06 17:46 EGG-INFO/zip-safe
1 2010-12-06 17:46 EGG-INFO/dependency_links.txt
227 2010-12-06 17:46 EGG-INFO/PKG-INFO
--------- -------
836 7 files
には、フォルダdemoが1つ増えていて、私たちが書いた_が入っています.init__.py. 敏捷な原則を奉行して、まずインストールして体験してからにします.$ sudo python setup.py install
running install
install_dir /usr/local/lib/python2.6/dist-packages/
...
creating /usr/local/lib/python2.6/dist-packages/demo-0.1.0-py2.6.egg
Extracting demo-0.1.0-py2.6.egg to /usr/local/lib/python2.6/dist-packages
demo 0.1.0 is already the active version in easy-install.pth
Installed /usr/local/lib/python2.6/dist-packages/demo-0.1.0-py2.6.egg
Processing dependencies for demo==0.1.0
Finished processing dependencies for demo==0.1.0
OK!インストール完了!これからはimportで直接使えます!$ python -c "from demo import test;test()"
Hello, I'm amoblin.
出力成功!これはインストールが正しいことを示しています.私たちのeggバッグが誕生しました.一般的に、私たちのソースプログラムはsrcディレクトリの下に置かれているので、次にdemoフォルダをsrcに移動します.それでもsetupを修正します.pyファイル、find_の変更packages関数のパラメータは'src'であり、packages_を追加します.dirパラメータ:packages=find_packages('src'),
package_dir = {'':'src'}
は、デフォルトのエンジニアリングルートディレクトリではなく、setuptoolsにsrcディレクトリの下でパッケージを探すように伝えます.1.3 eggファイルをpython 2でアンインストールします.6バージョンを例にとると、eggファイルは一般的に/usr/local/lib/python 2にインストールされます.6/dist-packages/ディレクトリの下にeasy-installがあります.pthファイル.インストールされたegg情報を格納します.:
$ cd /usr/local/lib/python2.6/dist-packages
$ cat easy-install.pth|grep demo
./demo-0.1.0-py2.6.egg
$ ls -F|grep demo
demo-0.1.0-py2.6.egg/
eggファイルをアンインストールするのは簡単で、まずこのeggを含む行をeasy-installからアンインストールする.pthで削除し、eggフォルダを削除すればいいです.