最近のトラックバック

最近のコメント

2017年3月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ

« 2016年12月 | トップページ | 2017年3月 »

2017年1月

2017年1月17日 (火)

pylintのインストールエラー

VS CodeのMarketPlaceからdonjayamanne.pythonをインストールすると、pyファイルをエディットしているときに"Linter pylint is not installed"というエラーがでる。

donjayamanne.pythonの初期設定でsetting.josonが以下のような設定になっているため。
  // Whether to lint Python files.
  "python.linting.enabled": true,
  // Whether to lint Python files using pylint.
  "python.linting.pylintEnabled": true,


"Install Pylint"をクリックするとVS Code内のターミナル画面でPylintがインストールされる・・はずなんだけど以下のエラーが発生。

Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
C:\<中略>\VisualStudioCode>python -m pip install pylint
Collecting pylint
  Using cached pylint-1.6.4-py2.py3-none-any.whl
Collecting mccabe (from pylint)
  Downloading mccabe-0.5.3-py2.py3-none-any.whl
Collecting colorama; sys_platform == "win32" (from pylint)
  Using cached colorama-0.3.7-py2.py3-none-any.whl
Collecting isort>=4.2.5 (from pylint)
  Using cached isort-4.2.5-py2.py3-none-any.whl
Collecting astroid<1.5.0,>=1.4.5 (from pylint)
  Downloading astroid-1.4.9-py2.py3-none-any.whl (213kB)
    100% |################################| 215kB 2.2MB/s
Collecting six (from pylint)
  Using cached six-1.10.0-py2.py3-none-any.whl
Collecting wrapt (from astroid<1.5.0,>=1.4.5->pylint)
  Using cached wrapt-1.10.8.tar.gz
    Complete output from command python setup.py egg_info:
    running egg_info
    creating pip-egg-info\wrapt.egg-info
    creating pip-egg-info\wrapt.egg-info
    writing top-level names to pip-egg-info\wrapt.egg-info\top_level.txt
    writing dependency_links to pip-egg-info\wrapt.egg-info\dependency_links.txt
    writing pip-egg-info\wrapt.egg-info\PKG-INFO
    writing manifest file 'pip-egg-info\wrapt.egg-info\SOURCES.txt'
    warning: manifest_maker: standard file '-c' not found
    error: [Errno 2] No such file or directory: '<略>\\python\\python35.zip\\lib2to3\\Grammar.txt'
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\\<中略>\AppData\Local\Temp\pip-build-ygt2fod3\wrapt\

VS Codeからではなくコマンドプロンプトから実行しても同様のエラー。
これは、zip版を展開したPython環境で発生。インストーラー経由でインストールしていると問題ない。

zipを展開したときに、つまり初めてインストールして(言い換えると解凍した)Pythonフォルダを見たときに、python35.zipファイルというのが存在していて、ソースかなんかが入ってるのかなと特に気に留めることもなく放置していたファイルにアクセスしに行ってると。

python35.zipファイルの中身を調べると、lib2to3というフォルダも、Grammer.txtというファイルも存在していた。けど、なんでzipファイルの中身を見るんだろうなぁと不思議に思う。

インストーラー版Python環境を見ると、lib2to3というフォルダとGrammer.txtというファイルはlibフォルダ配下に存在していた。
ということで、もしかしてpython35.zipはlib配下に展開するためのものかと思い、python35.zipとlibフォルダを比較すると、中身が一致。
# 多分、どっかに注意書きが書いてあったんだろうなぁ。


なので、zipファイルを展開して、その中身をlib(zip解凍版のPython環境では手動でフォルダを作成していたので、殆どろくに何もない)配下へ移動。
# この時点ではpython35.zipファイルは消さずに残したまま。展開してできたpython35フォルダは削除


その状態で再び、"python -m pip install pylint"を実行。
けど、同様のエラー。

何故か知らないけど、python35.zipファイルが最初の検索パスに設定されてるっぽいので、python35.zipファイルを丸ごと削除。

lib配下に何もない状態でpip自体をインストールしたからかな?と思い、pipを再インストール。そしてpylintのインストールを三度実行するも、同様のエラー。

なので、python35.zipファイルを削除して(もしくはリネームして)pylintのインストールを再び実行すると今度は正常にインストールされた。

けどなんでpython35.zipファイルを見に行くのかは、pip関連のpyファイルを見てもちょっとよくわからなかったなぁ。

2017年1月 9日 (月)

Start-Processの戻り値からProcess IDを取得したい

これもずいぶん初歩的な知識かも。

プロセスの終了を待ってから次のプロセスを起動させる処理を書きたかったのだが、

をざっと(テキトーに)見て、

$proc=Start-Process notepad.exe
Wait-Process $proc.Id

とやっても、上手く動かない(というか、Wait-Processでエラーになる)。
$procにはプロセスのオブジェクトがセットされないのでなぜだろうと、ググると-PassThruパラメータが必要らしい。
元記事を見返すとちゃんと-PassThruパラメータが書かれていた!あぁ情けない。

$proc=Start-Process notepad.exe -PassThru
Wait-Process $proc.Id

これでOK

<参考>

2017年1月 5日 (木)

pipのインストール(続)

get-pip.pyをダウンロードして、scriptsフォルダ配下に配置。

んで、
>python scripts\get-pip.py
と実行したら、一緒にsetuptoolsもインストールしてくれてた。

get-pip.pyのソースを確認すると、 インストールされていなければ"setuptools"と"wheel"も入れてくれるみたい。

pipをインストール後
>python -m pip install --upgrade pip
を実行してアップグレード。

※pip install --upgrade pipでもいいはずなんだけど以下のエントリみて両方実行しました。

windows in-place pip upgrades #1299

pipのインストール

Windows PCにzipファイルを解凍してpython.exeが起動できるまでを確認。
次はNuGetやRubyGemみたいなやつを入れないと、ということで。
初めてあれこれ見てた時(3か月ぐらい前)はさっぱりわけわからなかったけど(Python2とPython3の情報が混在しているので猶更)、その時見てた情報を整理するとこんな感じ。
 
・Setuptools + pipを入れる
最新版のsetuptoolsを入手するにはez_setup.pyをダウンロードして実行する(リンクあり)。
イマイチ英語がよくわからなかったけど、これでeasy_installを入手できると。
けど、easy_installではなくpipを入れた方がいいということらしい。pipはget-pip.py(これはリンク先が切れてた)でインストールする事が出来ると。
 
・ez_setup.pyをダウンロードして実行
setuptoolsとはつまりはeasy_installのことを指すらしい(けどこのページにあるez_setup.pyはリンクが切れてた)。
ダウンロードしたez_setup.pyに対して、python ez_setup.pyを実行するだけっぽい。
これによってeasy_installが使えるようになるそうな。
 
# easy_installを使ってpipをインストール
> easy_install pip
 
→これを見ると、「pipはsetuptoolsの一部であるeasy_installを置き換える」「setuptools置き換えのdistributeというものもあるのですが、こちらはsetuptools全体を置き換えるものとして開発されており」とある。
→手順は、最初にsetuptoolsを入れないといけないらしい。setuptoolsに入っているeasy_installを使ってpipを入れるそうな。
けど、この記事の内容は既に古くなっているとのことで、以下のエントリを参照とのこと。
 
→上記記事を更新したこのエントリでは、
pip 1.5.1からsetuptoolsのインストールが要らなくなりました。get-pip.pyが自動的に入れてくれます。」とのことだそうな。
# リンク先からget-pip.pyをダウンロード(けど、リンク先の中身をみると、最新版はhttps://bootstrap.pypa.io/get-pip.pyに移動したそうな)して、実行。
> python get-pip.py
これでpipがインストールされる
 
→この人の場合は、ez_setup.pyをダウンロードしてpython ez_setup.pyと実行。するとeasy_installがインストールされる。
 
→しかしこの人は、setuptoolsはpython 2用なのでPython 3であればdistributeを使えと言っておる。
手順としては、
・最初distributeをインストール。
・distributeを入れることでeasy_intallが使えるようになるらしい。
・で、このeasy_installを使ってpipを入れるという段取り。
 
しかし
によると、3.3から「Python3.3では、distribute が packaging という名前でバンドルされるようだ。このため更に、手順やコマンドが違ってくる予定。」だそうな
 
→これはPowerShellをつかったインストールのやりかた
        (Invoke-WebRequest https://bootstrap.pypa.io/ez_setup.py).Content | python -
        (Invoke-WebRequest https://bootstrap.pypa.io/ez_setup.py).Content | python - --user
 
→get-pip.pyはここからダウンロード↓

なんかココログは使いずらいというか、書きずらいなぁ・・・

« 2016年12月 | トップページ | 2017年3月 »