最近のトラックバック

最近のコメント

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  
無料ブログはココログ

Windows

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月11日 (日)

Pythonインストール

Windowsパソコンにインストールしようとする。

ただしPCの制約から、インストーラーではなくzipファイルから解凍してPythonをインストールすることを選択。

要はUAC画面を表示させたくないし(UACを無効にする気もないし)、管理者権限が必要なインストールはしたくなかったと。

その時点ではWinPythonの存在を知らず、色んなブログで取り上げられてたAnacondaは、別のPCで試しにやったらUAC画面が出てきたので、Python.orgからWindows x86-64 embeddable zip fileをダウンロードして解凍することに。
解凍して、いくつか環境変数(PYTHONPATH/PYTHONHOME)を定義し、パスに追加設定した状態でコマンドプロンプトを開いて、Python.exeを実行すると問題なく動作したのを確認。
通常のインストーラーを利用してインストールしたPCと比較すると、libとかScriptsとかのフォルダが存在しない。
とりあず、libとScriptsフォルダを作成し、環境変数PYTHONPATHとPATHに両方とも追加。まぁ、何もないけど。
解凍したこの状態では、ランチャーのpyもないし、pipも存在しない。

2016年12月10日 (土)

WinPythonのWinPython Powershell Prompt.exeを起動するとエラーがでる

Python.orgからダウンロードしたPythonとは別に、追加でWinPythonをダウンロードしてインストール。

試しにWinPythonに含まれているPowerShell(WinPython Powershell Prompt.exe)を起動してみた。 すると、

"WindowSize" の設定中に例外が発生しました: "ウィンドウの幅は 192 を上回ることができません

というエラーが表示される。
WinPython_PS_Prompt.ps1というスクリプトでエラーが表示されるので中を確認すると、ウィンドウサイズを指定する箇所が問題らしい。
Set-WindowSize 210 40 6000
Set-WindowSize内で
$size = New-Object System.Management.Automation.Host.Size($x,$y)
$host.ui.rawui.WindowSize = $size 
という風に指定している。
なので、210としている箇所を192よりも小さい値に変更。
するとエラーは表示されなくなった。

2010年7月21日 (水)

subinaclコマンド

ファイル以外のオブジェクトにおけるアクセス権や所有者情報などを検査、変更するにはsubinacl.exeというコマンドが利用できる

とな。

<a href="http://www.atmarkit.co.jp/fwin2k/win2ktips/1328subinacl/subinacl.html">subinaclコマンドでオブジェクトのセキュリティ情報を表示させる(subinaclの基本) - @IT</a>

2008年5月23日 (金)

RAID

DBサーバーのRAIDをどれにすればよいのかと言うことで

選択肢としてあげられるタイプは

  1. RAID0+1(RAID01):ストライプドミラー
  2. RAID1+0(RAID10):ミラードストライプ
  3. RAID5
  4. RAID50(RAID5+0)
  5. RAID6
  6. RAID60(RAID6+0)

推奨順位はこんな感じでしょうか。
  RAID1+0 > (RAID0+1) > RAID50 > RAID5 > RAID6
  ※多分、今はRAID0+1はなくて主にRAID1+0でしょうね。サイトによっては一緒にしてたり別に分けたりしてましたが

昔から教科書的回答としてよく言われているのがRAID5は避けたほうがいいとうことでした。
ただし、
・費用対効果
・選択したアレイ装置の機能(RAID5やRAID6以外ダメってのもありますし、メーカー推奨の設定があったりします)
により、RAID5/RAID6を選択するということも当然ありえます(昔は、PCサーバーだと通常RAID5が選択されていたわけだし)。
ギガバイトを超えるキャッシュをつみ、ライトバックで書き込みを行うなど、RAID5特有の書込時ペナルティーを軽減させているので神経質なまでにRAID5とその系統を避けるという必要はなくなっていると言えるでしょう。
※ただし、あくまでRAID5/RAID6はハードウェアRAIDで実装することが前提ですが

RAID - Wikipedia
AOL Q&A広場 RAID 1+0とRAID 0+1の違いについて
RAID Level
sanonosa システム管理コラム集: RAID0+1とRAID1+0の違い
特集 : RAIDの基礎知識-RAIDレベルを理解しよう-
RAID01とRAID10の違い:佐野裕のサーバ管理者日記:ITpro
DiskとRAIDの知識: RAID10こそ最良のRAIDポリシー
仕様詳細:RAIDとは?

2008年5月12日 (月)

32bit Windowsに4GB以上のRAMを搭載することは

話はWindows Server 2003にのみ限定。

すごくアバウトに話をまとめると
(1)Windows OS自体4GBまでしか物理メモリを認識しない
  ・実態は4GBよりももっと小さいらしいけど
  ・PAEを使うと、4GB以上の物理メモリを認識できるようになる
(2)Windows上で動く個々のプロセスは4GBまで使える/最大4GB割り当てられる
  ・これも2GB、/3GB or /4GTオプションを使えば3GBまで使えるようになる

詳細な議論としては↓
なんでもFAQ

/PAEを使っても、個々のプロセスが4GB以上つかえるわけではないとうことは以下のページに書かれている↓
The 4GB Windows Memory Limit: What does it really mean? - From BrianMadden.com

で、(1)で4GB以上の物理メモリを認識できることのメリットは、より多くのプロセスを実メモリ上に乗っけておく事ができるってことでしょうかね(ページングやスワッピングを減らすことにある?)。

2008年4月18日 (金)

xpでハードウェアの安全な取り外しが消えた

コマンドラインから「ハードウェアの安全な取り外し」を起動させるほう方法がわかりました。
↓これを実行させればよい

rundll32 shell32.dll,Control_RunDLL hotplug.dll

とはいえ、再起動したらちゃんともとにもどりましたけども。

モトネタは↓
xpでハードウェアの安全な取り外しが消えた
あとは、
windows me, windows 2000, windows xp ハードウェアの安全な取り外し アイコンが表示されず、周辺機器を安全に取り外すことができない

タスク バーの通知領域にアイコンが表示されない