いろいろ備忘録日記

主に .NET とか Java とか Python絡みのメモを公開しています。

Pythonメモ-76 (Qt for Python) (PySide2から名称変更, まだリリースされていない, LGPL)

概要

PySide2が Qt for Python としてリブランディングされるとのこと。

Qt for Python is coming to a computer near you - Qt Blog

PySideという名前より、個人的にはずっといいと思います。オフィシャルなイメージもするので。

まだ、リリース自体はされていませんが、期待大です。

Python + Qt いえば、PyQTが一番有名なのですが、ライセンスの絡みがあって PySide つかっている方もいらっしゃると思います。

ちょうど上の記事のコメント欄で、気になっていることをすでに聞いている方々がいらっしゃったので、以下引用しながらメモ書き。

ライセンスはどうなるのか?

以下のコメントがありました。

There was discussion a few months back that the license had not been finalized. Can you confirm that it will be LGPL (as well as GPL and commercial)?

それに対して以下の返答が。

Yes. Qt for Python will have the same licensing as Qt for Application Development, i.e. it will be available under GPL, LGPL and commercial.

てことで、ライセンス形態は元のまま LGPL も許容されるみたいです。

どのバージョンのPythonで使えるのか?

以下のコメントがありました。

i’am using python 3.5 but new pyside2 python3.6 plz make support python 3.5

それに対して以下の返答が。

Stable ABI is used which means 3.4, 3.5 and 3.6 will work with same binaries.

Python Stable ABI というのは、下記の内容です。

安定 ABI (Stable Appliction Binary Interface) — Python 3.6.5 ドキュメント

ABI( Application Binary Interface ) が共通のものを使うので、 3.4, 3.5, 3.6 は同じバイナリで動作するよとのこと。

配布形態はどうなるのか?

以下のコメントがありました。

Can we install it by online installer?

それに対して以下の返答が。

No, it won’t. It uses Python’s package management (pip) and we will release by pushing wheels.

よかった。pip + wheel で提供されるみたいです。なので、インストールは一発でいけそうですね。

モバイルプラットフォームに対しての対応は?

以下のコメントがありました。

Do you also plan to support mobile platforms (ios and android)?

それに対して以下の返答が。

Not at the moment, but we will love to hear back from the users to define our next milestones.

今は予定ないけど、後々あるかも。


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。

GraalVM (Oracle, High-performance polyglot VM, いろんな言語に対応)

概要

Oracleさんが GraalVM というのをリリースしたみたいなので、とりあえず情報をメモメモ。

まだ試していないですが。

polyglot VM ってなってる通り、いろんな言語をサポートしているみたいですね。

実験的な段階ですが、ruby や python などもサポートしてるみたい。

news.mynavi.jp

blogs.oracle.com

GraalVM

Community Edition と Enterprise Edition がある

Downloads

を見ると、Community EditionとEnterprise Editionの2つありますね。

Community Editionは、github でホストされていて、好きなように使って良し版。

Enterprise Edition は、評価と非商用利用なら無償利用可能。

Community Editionは、現在 Linux 版のみがプレビルドとして用意されている。

Enterprise Editionの方は、LinuxとMac版が用意されている。Windowsは蚊帳の外です。

ネイティブイメージが作れる?

Native Images

を見ると、ネイティブイメージが作れるみたいな感じ。


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。

Windows で Linux や Mac の time コマンドみたいなものを出力したい (実行時間計測, time command)

概要

小ネタです。忘れないうちにメモ。

WindowsでLinuxやMacなどで利用できる time コマンドみたいに実行時間を表示したい場合のTips。

Windows で time コマンドを実行すると・・・

Windowsにも time コマンドはあるのですが、こちらは時間を設定するものです。

全然違うコマンドです。

PoweShell使う

以下を参考にしました。

superuser.com

で、実際に以下のようなどうでもいいサンプルつくって

import time

print('start....')
for _ in range(5):
    time.sleep(1)
else:
    print('done')

で、以下を実行。

$ Measure-Command { Start-Process python -argumentList "test1.py" -Wait -NoNewWindow }

以下のように表示されました。

$ Measure-Command { Start-Process python -argumentList "test1.py" -Wait -NoNewWindow }
start....
done


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 6
Milliseconds      : 129
Ticks             : 61295455
TotalDays         : 7.09438136574074E-05
TotalHours        : 0.00170265152777778
TotalMinutes      : 0.102159091666667
TotalSeconds      : 6.1295455
TotalMilliseconds : 6129.5455

なんか、若干ずれてるような気がするけど・・・インタープリターの起動時間かな・・・。 まあ、いいや。

-Wait-NoNewWindow つけておくのがポイントです。これつけておかないとちゃんと計れませんでした。

秒数だけでいいやって場合は

$ Measure-Command { Start-Process python -argumentList "test1.py" -Wait -NoNewWindow } | Select-Object -Property TotalSeconds

でいいですね。長い・・・・・・・。


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。