VSCode: 突然 Python の構文チェックエラーが増えた時は

VSCode の Python 構文チェックで、ある時から急に見慣れないメッセージが増えたら、それは Pylint のオプション設定が原因かもしれない。

対象

  • Python の構文チェックに Pylint を使っている (VSCode のデフォルト)
  • 構文チェックで、以前は出なかった問題(警告, ヒント)が表示される
  • Pylint のオプションを設定したことがある

原因

VSCode では、pylintrc ファイルまたは設定 UI から Python › Linting: Pylint Args で Pylint 実行時のオプションを指定できる。これらは特定の警告を無効化したいときに便利だ。
しかしながら Pylint のオプションを指定すると、デフォルトで有効な Pylint Use Minimal Checkers が強制的に無効化されてしまう。

この挙動は、双方のオプション同士の衝突を避けるためだと思われるが、なかなか不便だ。それならその可能性を指摘してくれるだけでいいのに…という感じがしないでもない。

対処法

Pylint Use Minimal Checkers の環境を取り戻すには、自動設定されていた Pylint のオプションを手動で設定(Ctrl+,)の Pylint Args (または pylintrc ファイル) に追加する。

追加するオプションは、下記の通り。

  • --disable=all
  • --enable=F,E,unreachable,duplicate-key,unnecessary-semicolon,global-variable-not-assigned,unused-variable,binary-op-exception,bad-format-string,anomalous-backslash-in-string,bad-open-mode

なお、これらのオプションの具体的な意味は、VSCode 公式サイトに記載されている。

Windows 10 のスリープが効かなくなった (Update 1903以降)

どうも最近、PCを放置しておいてもスリープにならないので、少し調べてみました。

まずは「電源オプション」などのスリープに入るための設定を確認します。こちらは問題なし。
となるとやはり、何らかのアプリやデバイスがスリープに入るのを阻害している可能性が高いです。

そこで、コマンドプロンプト(管理者)から powercfg -requests で調べてみると、ありました。

実行:
[SERVICE] \Device\HarddiskVolume1\Windows\System32\svchost.exe (UsoSvc)
Universal Orchestrator

Universal Orchestrator なるものがスリープを阻害しています。
これは Windows Update 関連で自動実行されるサービスのようです。

対策方法

サービスがスリープを阻害しないように強制する方法もあるのですが、あまり一般的でない設定はしたくないので、もう少し調べてみた所、 Windows Update の KB4501375 により解決するとの情報がありました。
この更新は 6月27日にリリースされていますが、まだこちらでは自動アップデートに来ていません。
なので、真偽の程は後日また改めて追記します。

なお、アップデート 1903 で大きな問題は起きていませんが、この他にもいくつかの機能に(致命的ではないものの)バグがあるようです。

参考サイト

Let’s Encrypt(certbot) で取得した証明書の削除

証明書を失効させて削除するコマンドは certbot revoke で、次のように指定します。

certbot はバージョンによってオプションや挙動が異なるため調べると様々な方法が出てきますが、現在は これだけで簡単に失効と削除が行えます。

なお、コマンド名が certbot-auto の場合でも同様です。
root ではない時は頭に sudo を付けて実行します。

2019年4月現在、CentOS7(epel) のバージョン 0.31.0 では、次のような挙動になります。

途中、証明書も一緒に削除するかとの問いに y と入力すると、/etc/letsencrypt 内の指定ドメインの証明書ファイルも一緒に削除してくれます。
以前のバージョンでは certbot delete を別途実行または手作業で削除していたようですが、現在はその必要はありません。

httpサーバの設定

Apache や Nginx 等の SSL/TLS 設定は個別に修正する必要があります。
そのままだと証明書ファイルが見つからずエラーになりますので、設定ファイルを開いて、削除済み証明書ファイルの指定部分を修正しましょう。

参考サイト

Windows のシンボリックリンクとハードリンクの違い

Windows にはシンボリックリンクとハードリンクの機能がありますが、違いや特徴が解りづらく、あまり利用されていないのではないかと思います。
その違いと特徴について考察します。

シンボリックリンク

エクスプローラでショートカットファイルを作るのに似ています。
仕組みは概ね Linux と同様ですが、作成方法には違いがあります。

特徴

  • シンボリックリンクは、元のファイルの(実体そのものではなく)パスを指す。
  • パスを指す為、他のドライブや、ネットワーク越しでもリンクできる。
  • シンボリックリンクを削除しても、元のファイルには何も影響しない(そのまま残る)。
  • 元のファイルを削除した場合、そのファイルへのシンボリックリンクは残るが、既に存在しないパスを指しておりアクセスできなくなる。
  • ショートカットファイルのように「作業フォルダ」の情報は無い為、実行ファイルはリンク先のフォルダではなく、実行したフォルダ側で起動する。
  • dir コマンドやエクスプローラで symlink であることが確認できる。
  • 作成には管理者権限が必要。

作成と削除

シンボリックリンクを作成・削除するときは、リンク先がフォルダかファイルかで方法が異なります。

ファイルは mklink で作成、del で削除。
フォルダは mklink /d で作成、rmdir で削除します。

ハードリンク

ハードリンクは Linux のそれと同様の動作をします。
つまり同一のドライブ内で、元のファイル名と同様にファイルを直接指す別名を付けます。

特徴

  • ハードリンクで付けた名前は、元のファイルの名前と全く同じように扱える。
  • 1つのファイル内容に対して、複数の名前でリンクを張ると解釈できる。
  • 元のファイルを削除しても、ハードリンクが 1つでも残っていればファイル内容(への参照)は残り、やはり元のファイルと同じようにアクセスできる。
  • 言い換えれば、ハードリンクによる参照が 1つでも残っている限りファイルは削除されない。
  • Windows10 に Linux サブシステムを入れて ls -l してみると、Linux と同様にファイルの参照数が増えることが確認できる。
  • 作成は一般ユーザ権限で可能。

作成と削除

mklink /h で作成、del で削除します。
リンク先はファイルのみで、フォルダのハードリンクは作れません。

対応環境

ハードリンクは Windows 2000 以降、シンボリックリンクは Vista 以降で利用できます。
対応ファイルシステムは NTFS です。

PowerShell で実行する際はコマンド名を cmd /c mklink にする必要があります。
コマンドプロンプト(cmd.exe)からは直接実行できます。

関連サイト

Windows 10 アップデート 1809 がほぼ全ての環境で利用可能に

Intel 製ディスプレイドライバの問題などで、一部の環境には配信されないままになっていたバージョン 1809 へのアップデートが、ようやくほぼ全ての環境で利用可能になりました。
配信停止は 3月15日頃から解除され、筆者も Windows Update から確認することで無事アップデートできました。

そこで、Windows 10 October 2018 Update と呼ばれるこの大型アップデートの特徴をいくつかおさらいしておきます。

アップデート時

  • ストレージの必要空き容量は、アップデート時の作業領域も含めて 30GB 程度。なお、必要空き容量は非公表。
  • アップデート完了までには結構時間がかかる。(1~2時間程度)
  • アップデート後 10日以内なら、設定の「回復」から前のバージョンに戻すこともできる。
windows_update_1809_amd64_2019-03.png
更新プログラムのインストール待ち

新機能と変更点

  • 「Snipping Tool」が非推奨になり、代わりに「画面領域切り取り」が追加された。詳しくは後述。
  • エクスプローラにもダークモードが有効になった。
    • 色の設定で、規定のアプリモードを黒にして有効化。
  • デバイス間でのクリップボード共有が可能に。
  • Unicode 11 の絵文字が使用可能。
  • スマホ同期アプリが追加された (が、あまり便利ではないらしい)。
  • 一部の Windows アプリの設定が部分的に初期化される。
    • エクスプローラ、タスクマネージャなど。
    • 半期毎の大型アップデートでは毎回こうなる。
  • 一部関連付けの強制変更。(JPEG → フォトアプリなど)
    • 元に戻すには、右クリックの「プログラムから開く → 別のプログラムを選択」で任意のアプリを選択し「常にこのアプリを使って … ファイルを開く」をチェックして OK を押す。

画面領域切り取り機能

右下のアクションセンターに「画面領域切り取り」が追加され、ここから画面を簡単にキャプチャできる。

  • キャプチャ直後に表示される通知をクリックすると、ストアアプリ「切り取り領域とスケッチ」が起動してペン書き込みやファイル保存、共有ができる。
    • キャプチャ及びファイルからの編集は可能だが、クリップボードからの貼り付けはできない。
    • クリップボードにコピーすることは可能。
  • 機能的にはウィンドウ単位のキャプチャが無い等、今の所まだ Snipping Tool のほうが高機能。

関連サイト