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)

2018/03/31

symbolic link privilege not held が出る場合の対処方法 (Windows 10)

Python でシンボリックリンクを作成するには `os.symlink()` を使用します。
ただ、Windows でこれを普通に実行すると `OSError: symbolic link privilege not held` が発生してしまいます。

2018/03/08

Linux に wxPython をインストールする方法

以前、[Ubuntu 16.04 に wxPython (Python3用) をインストール | 穀風](https://kokufu.blogspot.com/2017/04/ubuntu-1604-wxpython-python3.html) を書いたのですが、
[wxPython 4.0.1](https://www.wxpython.org/news/wxpython-4.0.1-release/index.html) になって微妙に依存関係が変わったようです。

2018/03/07

関数プロトタイプ宣言はヘッダファイルとソースファイルのどちらに書くべきか

C言語のコードでは、全ての関数プロトタイプ宣言がヘッダファイルに書いてあったりするものもありますが、
個人的にはヘッダファイルに書くべきものと、ソースファイルに書くべきもしくは、書く必要さえないものを明確に区別すべきだと思います。

何をもって区別するのかと言うと、「スコープ」です。
「何を当たり前のことを」と思った方は申し訳ありません。ただ、最近「スコープなんて知らん」と言わんばかりのコードを大量に読むことになってしまいまして。