AWS / PHP / Python ちょいメモ

amazon web service , PHP, Python を使ったときのメモ。日本語でググってもわからなかった事を中心に。

flake8 2.5.0 のエラー対処 on Ubuntu

Ubuntu に pip で flake8 を入れたら、上手く動かなかった。次の対処で上手く動作したのでメモ。

対処1

設定ファイル書くか -j0 オプション付けて並列処理をなくしたら動作。

vi ~/.config/flake8

[flake8]
jobs = 1
$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="14.04.3 LTS, Trusty Tahr"

$ python -V
Python 2.7.6

$ flake8 --version
2.5.0 (pep8: 1.5.7, pyflakes: 1.0.0, mccabe: 0.3.1) CPython 2.7.6 on Linux

対処2

あとから、apt-get でインストールしたらよかったと気づいた。。。

こっちのバージョンだと jobs オプションがないようなので、さっきのファイルは削除。

sudo apt-get install python-flake8

$ flake8 --version
2.1.0 (pep8: 1.4.6, mccabe: 0.3.1, pyflakes: 0.8.1) CPython 2.7.6 on Linux

Ubuntu 側でパッケージが用意されてる見極めって、どのラインなんですかね?CentOSと両方使ってると、ついつい pip からはいってしまう。

ダメだった時の状況

対処1をする前のエラーなど

$ flake8 sample.py
Traceback (most recent call last):
  File "/usr/local/bin/flake8", line 11, in 
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/flake8/main.py", line 25, in main
    flake8_style = get_style_guide(parse_argv=True, config_file=DEFAULT_CONFIG)
  File "/usr/local/lib/python2.7/dist-packages/flake8/engine.py", line 280, in get_style_guide
    report = styleguide.init_report(reporter)
  File "/usr/local/lib/python2.7/dist-packages/flake8/engine.py", line 182, in init_report
    return self._styleguide.init_report(reporter)
  File "/usr/local/lib/python2.7/dist-packages/pep8.py", line 1657, in init_report
    self.options.report = (reporter or self.options.reporter)(self.options)
  File "/usr/local/lib/python2.7/dist-packages/pep8.py", line 1559, in __init__
    super(StandardReport, self).__init__(options)
  File "/usr/local/lib/python2.7/dist-packages/flake8/reporter.py", line 43, in __init__
    self.task_queue = multiprocessing.Queue()
  File "/usr/lib/python2.7/multiprocessing/__init__.py", line 218, in Queue
    return Queue(maxsize)
  File "/usr/lib/python2.7/multiprocessing/queues.py", line 63, in __init__
    self._rlock = Lock()
  File "/usr/lib/python2.7/multiprocessing/synchronize.py", line 147, in __init__
    SemLock.__init__(self, SEMAPHORE, 1, 1)
  File "/usr/lib/python2.7/multiprocessing/synchronize.py", line 75, in __init__
    sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue)
OSError: [Errno 13] Permission denied

なんで?権限?と思い、念のためsudoしてやってみた。

$ sudo flake8 sample.py
Traceback (most recent call last):
  File "/usr/local/bin/flake8", line 11, in 
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/flake8/main.py", line 25, in main
    flake8_style = get_style_guide(parse_argv=True, config_file=DEFAULT_CONFIG)
  File "/usr/local/lib/python2.7/dist-packages/flake8/engine.py", line 280, in get_style_guide
    report = styleguide.init_report(reporter)
  File "/usr/local/lib/python2.7/dist-packages/flake8/engine.py", line 182, in init_report
    return self._styleguide.init_report(reporter)
  File "/usr/local/lib/python2.7/dist-packages/pep8.py", line 1657, in init_report
    self.options.report = (reporter or self.options.reporter)(self.options)
  File "/usr/local/lib/python2.7/dist-packages/pep8.py", line 1559, in __init__
    super(StandardReport, self).__init__(options)
  File "/usr/local/lib/python2.7/dist-packages/flake8/reporter.py", line 43, in __init__
    self.task_queue = multiprocessing.Queue()
  File "/usr/lib/python2.7/multiprocessing/__init__.py", line 218, in Queue
    return Queue(maxsize)
  File "/usr/lib/python2.7/multiprocessing/queues.py", line 68, in __init__
    self._wlock = Lock()
  File "/usr/lib/python2.7/multiprocessing/synchronize.py", line 147, in __init__
    SemLock.__init__(self, SEMAPHORE, 1, 1)
  File "/usr/lib/python2.7/multiprocessing/synchronize.py", line 75, in __init__
    sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue)
OSError: [Errno 28] No space left on device