distutils の簡単な使い方 (python)
[History] [Last Modified] (2018/05/29 11:48:14)

概要

distutils は python 標準のパッケージ管理ツールです。python のバージョンによって仕様が異なる等の理由もあり、setuptools の利用が推奨されていますが、distutils を直接使う場合について簡単な設定を記載します。

設定例

以下のようなパッケージを設定してみます。init.py は空ファイルとします。

$ tree .
.
├── my
│   ├── __init__.py
│   └── module
│       ├── foo.py
│       └── __init__.py
└── setup.py

foo.py

# -*- coding: utf-8 -*-

x = 128
def setX(var):
    global x
    x = var

setup.py

# -*- coding: utf-8 -*-

from distutils.core import setup

setup(
    name='mymodule',
    version='1.0.0',
    packages=[
        'my',
        'my.module',
    ],
    url='http://www.example.com/',
    author='author name',
    author_email='xxx@example.com',
)

パッケージのビルド

以下のコマンドでパッケージングできます。

python setup.py sdist

成果物

ls dist/
mymodule-1.0.0.tar.gz

パッケージのインストール

インストールして使うためには以下のようにします。

tar zxvf mymodule-1.0.0.tar.gz
cd mymodule-1.0.0/
sudo python setup.py install

main.py

#!/usr/bin/python
# -*- coding: utf-8 -*-

import my.module.foo

my.module.foo.setX(256)
print my.module.foo.x

確かにインストールされました。

$ python main.py
256

インストール場所は以下のように確認できます。

sudo apt install python-pip
sudo pip install ipython
ipython
In: import sys
In: print sys.path
In: my.module.__path__
Out: ['/usr/local/lib/python2.7/dist-packages/my/module']
Related pages
    概要 3D アプリケーション間でデータを交換するためのファイルフォーマットの一つに COLLADA (COLLAborative Design Activity) があります。コンピュータグラフィックスのレンダリングに必要な情報およびその他付随する情報を格納できます。COLLADA の仕様にしたがった XML スキーマファイルの拡張子は通常
    概要 よく使う python ライブラリのサンプルコード集です。 JSON #!/usr/bin/python # -*- coding: utf-8 -*- import json arr = [1, 2, {'xxx': 3}] # オブジェクト ←→ JSON 文字列 jsonStr = json.dumps(arr) arr2 = json.loads(jsonStr) # オ