2018/04/27

heic ファイルを扱える Imagemgick をインストールする

@Ubuntu 16.04 LTS18.04 LTS がまさに出ようというその時に…

[ImageMagick](http://www.imagemagick.org/script/index.php) が heic フォーマットHEIF フォーマットと言った方が良いのか?しかし、HEIF はコンテナフォーマットのことなので適切とは言えないか…に対応したようなので、ソースコードからコンパイルしてインストールしてみました。

以下によると、6.9.9 もしくは 7.0.7 以降が対象とのこと。

> 参考
>
> [ImageMagick-6.9.9-34差分 - yoyaのメモ](http://d.hatena.ne.jp/yoya/20180123/im)

2018/04/26

doctest を unittest と統合して実行する (Python)

### doctest とは
ここに検索で来られた方には不要かもしれませんが、説明の都合上、簡単に書いておきます。

doctest は、以下のような docstring 内の対話実行例が正しく実行できるか確認するモジュールです。
docstring 内だけでなく、テキストファイルの実行例を確認する事も可能です。

```python
`title: "core.py";
# -*- coding: utf-8 -*-


def times(a, b):
    """
    2つの入力を掛け算して出力

    >>> times(4, 9)
    35
    """

    return a * b
```

2018/04/25

[Python] setup.py に dependency_links を書いても "Could not find a version that satisfies the requirement" が出る場合の対処方法4種

2018/10/16 追記
Pip 18.1 以降は dependency_links を使わない方法が正式になりました。
[dependency_links を使わないでレポジトリを明示的に指定する方法](https://kokufu.blogspot.com/2018/10/dependencylinks.html)
Python で `pip install` 可能なパッケージを作成した際、 [PyPI](https://pypi.org/) に登録してしまえば `pip` が適切に処理してくれるので簡単です。 しかし、内部用のライブラリの場合は明示的にリポジトリの場所を指定しなければなりません。 そのための機能として、`setuptools.setup()` には `dependency_links` という引数があります。 ところが、`pip install` しようとした場合、`dependency_links` は無視されてしまい、うまくいきません。 `dependency_links` は、基本的に `python setup.py install` の場合を想定しているようです。 ただ、`pip` は `setup.py` の上位ラッパーこの表現が適切かどうかは怪しいですがのはず。 対処方法が無いはずはないと思って調べてみました。
2018/04/07

Python の with で複数ストリームを同時に扱う方法

2つのファイルを同時にオープンして、処理が終了したら同時にクローズするような処理例えば、解析対象ファイルと結果出力ファイルなどはよく行われると思うのですが、私は最近まで `with` をネストして書いていました。

が、Python 2.7 以降は以下のように書けるとのこと。
知らなかった以前、調べた時は出来ないって書いてあった記憶が。古い情報を引っ張ってしまったのかもしれません。。。。

```python
with open('a', 'r') as a, open('b', 'w') as b:
    do_something()
```

> 参考
>
> [How can I open multiple files using "with open" in Python? - Stack Overflow](https://stackoverflow.com/questions/4617034/how-can-i-open-multiple-files-using-with-open-in-python)