ラベル Windows7 の投稿を表示しています。 すべての投稿を表示
ラベル Windows7 の投稿を表示しています。 すべての投稿を表示

2020年6月17日水曜日

Windowsでcurses

コマンドプロンプトで動作するコンソールアプリケーションを作成してみようとした時の備忘録

(環境)
  • Windows7(64bit)
  • OracleClient11.2.0.4(32bit)
  • Python3.6.1(32bit)

  1. Windows版のPythonにはcursesライブラリが標準インストールされていない、windows-cursesやunicurses等の代替えライブラリのインストールが必要
  2. キーボード入力のマルチバイト文字列はgetstr()で取得可能、マルチバイト文字ならget_wch()
  3. curses.textpad.Textboxはマルチバイト文字に対応していない(入力しても表示もせず、取得も出来ない)
  4. refresh()後にaddstr()でマルチバイトを表示させようとすると途中の文字列までしか表示しない、回避策として別ウィンドウオブジェクトを作成し文字列入力をさせる
  5. getstr()後にaddstr()でマルチバイトを表示させようとすると途中の文字列までしか表示しない
  6. getstr()で入力中も文字を表示させる際はcurses.echo()でエコーモードにする
途中

2019年11月9日土曜日

JobScheduler1.13(インストール)

JP1に代わるジョブスケジュールソフトを探していて気になっていたJobSchedulerを試してみることに。

【ダウンロード】


sso-berlin.comサイトから以下のインストーラをダウンロード


  • JobScheduler Master 1.13 Windows 64bit
  • JobScheduler JOC Cockpit (required to control JobScheduler Master) 1.13 Windows 32/64bit
  • JobScheduler Universal Agent 1.13 Windows 64bit
  • JobScheduler Object Editor

【ライセンス】


JobSchedulerはオープンソース(GNU Public License)で利用可能らしいけれどユニバーサル・エージェントの同時複数タスク実行は有償ライセンスが必要らしい

【インストール環境】


・Windows2012Server 64bit
・Windows7 64bit

【JAVA】


・jdk1.8.0._u144 _x64
サーバは既にインストールしていた別のサーバからjdkをコピーしてJAVA_HOMEを設定した状態(インストーラーからインストールしていなかったために色々はまった・・・)

【Database】

別サーバで稼働中のOracle(11.2.0.4)を使用

【JobScheduler Engine(JobScheduler Master)】


JobScheduler本体、インストール自体はそれほど難しくなくインストレーションガイドや紹介サイトを参考にすればそれほど難しくないはずだったけれど・・・

setup.cmdを実行しても実行されない、setup.cmdを見てみると内部で使用している環境変数JRE_HOMEに設定できないのが原因らしい、きっとちゃんとJDK(JRE)をインストールしなかったのが悪い、とりあえずsetup.cmdにJRE_HOMEの設定を追加して無事起動。

インストーラーに従ってインストールは完了したもののサービスが起動せず・・・ログファイルを確認してみるとjvm.dllが見つからないというエラーメッセージ

"loadLibrary, Java Virtul machine jvm.dll"

きっとこれもJAVAのインストールの仕方が原因で偶然見つけた対応方法としてconfig¥sos.iniの[java]セクションのvmパラメータを有効にしてフルパスでjvm.dllを指定して無事起動

【JOC - JobScheduler Operations Center】


JobScheduler Masterは管理画面がなくJOCのインストールすることでWEB経由に管理が可能になるらしい、JOCはJobScheduler Masterと同じサーバにインストールしようはなくhttpプロトコルで通信できるらしい。

setup.cmdを実行するとインストーラー起動せず(またか・・・)、JOCのsetup.cmdはjava.exeに環境変数が使用されていないのでとりあえずシステム環境変数のPATHに追加してjava.exeを実行できるようにしてインストール完了。

ブラウザからJOCにアクセスしてみても表示せず・・・サービスが起動していない、またjvm.dllが見つからないのかと思い色々ファイルを探してみるもののそれらしい設定がない。

JOCはApache Commons Daemonを使用してサービス化しているようなのでレジストリを確認してみるあやしい箇所があり修正してみたところ無事起動


HKEY_LOCAL_MACHINE¥SOFTWARE¥Wow6432¥Node¥Apache Software Foundation¥Procrun 2.0¥sos_joc¥Parameters¥Javaの以下のキーを

(修正前)
JavaHome=JRE
Jvm=auto

(修正後)
JavaHome=明示的にJDKのパスを設定
Jvm=フルパスでjvm.dllを明示的に設定

ブラウザからhttp://localhost:[ポート番号※]/にアクセスすると無事ログイン画面が表示
※ポート番号はインストール中のJettyポート番号として設定した番号

ID:root
Pass:root

デフォルトは英語表記だけれどユーザプロファイルの設定画面から日本語の選択が可能

【JOE - JobScheduler Object Editor】


インストーラーは他と同じく日本語を選べるがJOEを起動してみると英語表記(日本語選択はない)。
JobScheduler MasterをインストールするとJOEも含まれているようでJOEをあらためてインストールする必要はなかったかもしれない

【JobScheduler Universal Agent】


リモートでのジョブ実行を試す予定なのでWindows7端末にAgentをインストールしてみるとサービスが起動しない・・・。
エラーメッセージから127.0.0.1でlistenできないような雰囲気、インストールした端末はLANを2ポート持っていて1つはリンクアップしていない状態。

試しに有効になっているLANのアドレスに変更したところ無事起動できた。

ジョブの作成は別途にメモするとしてJobScheduler EngineからWindows7端末上でジョブを実行させてみるとエラー、端末上のサービスを確認するとAgentサービスが停止している。
Agentサービスは起動はするもののジョブの実行指示を受けるとエラーが発生しサービス停止するらしい。

試しに手動でAgentを起動させてみると無事ジョブ実行出来たのでサービスの実行ユーザ(ローカルシステム:LocalSystem)からAdministratorsグループのユーザに変更してみたところやはり問題なくジョブ実行できるようになりとりあえず完了。(ローカルシステムで動作しない理由は不明のまま)

とりあえず無事インストール完了、JAVAのインストールがいい加減だったおかげで色々苦労してしまった・・・。









2019年10月12日土曜日

自動でPCが起動していまう

PCをシャットダウンしても数分後に勝手に起動してしまうようになってしまった。

きっとWake On Lanの設定と思いBIOSの設定を見直しても改善せずなんでかと思っていたらWindowsのLANドライバに設定があることを忘れていた。

使用しているIntel 82579LM Gigabit Network Connectionのプロパティの「電源管理」タブにあるWake on LAN設定にある以下の項目のチェックを外した。

  • Wake On Magic Packet
  • Wake on Link
  • Wake on Pattern Match


最初はWake on Linkだけ外したけれどそれだけでは起動してしまった。

2019年4月26日金曜日

ConfigParserでUnicodeDecodeError

Windows7環境のPython3でConfigParserを使用したら以下のエラーメッセージ

UnicodeDecodeError: 'cp932' codec can't decode byte 0x86 in position 21: illegal multibyte sequence

読み込みファイル(config.ini)にマルチバイトを含めたとたん・・・。

まぁメッセージ的に文字コードの問題となので検索して

普段なら

import configparser

config = configparser.ConfigParser()
config.read('config.ini')



import configparser
import codecs 
config = configparser.ConfigParser()
config.readfp(codecs.open("config.ini", "r", "utf8"))

にして回避

2017年7月13日木曜日

Flaskのオフラインインストール

最近すっかりPythonネタ

今回はWEBアプリの開発を考え何かフレームワークを使ってみること、調べてみると何種類かありそれぞれの感想を見ていて根拠もなくFlaskにしてみました。
あえていうなら大規模向け高機能でもなく小規模でシンプルしぎなさそうな感じだからかな。

・Flaskインストール


Pandasのオフラインインストールと同様の手順でFlask-0.12.2-py2.py3-none-any.whlをインストールするのに以下のパッケージに依存しているため必要なパッケージを先にインストールする。


  • click-6.7-py2.py3-none-any.whl
  • jinja2-2.9.6-py2.py3-none-any.whl
  • MarkupSafe-1.0.tar.gz
  • itsdangerous-0.24.tar.gz
  • werkzeug-0.12.2-py2.py3-none-any.whl

・インストールしたら試しにFlaskの表示テスト


・テストアプリ


(app.py)
# -*- coding: shift_jis -*-
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
  return "Hello,flask"

if __name__ == '__main__':
  app.run()

・実行


>python app.py

・表示確認


http://localhost:5000/にアクセスしてHello,Flask!が表示すればとりあえずOK




2017年7月11日火曜日

openpyxlのオフラインインストール

前回のpandasオフラインインフトールに続き今回はExcelファイル(*.xlsx)を扱えるようにopenpyxlパッケージをインストール。

今回もインターネットに繋がるPCでダウンロードしてpythonを使うPCにコピーしてインストールを実施。

openpyxl-2.5.0a2をインストールするには結局


  • jdcal-1.3.tar.gz
  • et_xmlfile-1.0.1.tar.gz
も必要だった。

今回あらたに学んだのはpipではwhl形式をインストールするものとばかり思っていたらtar.gz形式もそのまま指定してインストールできたこと、素人的な考えだと統一すればいいのにと思った。



2017年7月5日水曜日

pandasのオフラインインストール

とりあえずpython3.6.1(32bit)をインストールは完了しちょっと作ってみたいプログラムのためにpandasというパッケージ(モジュール?ライブラリ?)追加インストールしてみることに。

調べてみるとpipを使用してPyPIからインストールと説明があるがpipもPyPIもよく分からずそこからのスタート・・・。
自分の簡単な理解としてpipがパッケージ管理システムのコマンドでPyPIはPython Package Indexパッケージ管理サービスのダウンロードサイト

インターネットに繋がる環境へのインストールであればpipコマンドでパッケージを指定するだけですみそうだけどオフライン環境ではそうはいかない。
幸いなことに直接インターネットに接続できないものの接続できる別のPCはあり手動で必要なファイルをダウンロードしてコピーしてくることは可能。

とりあえず目的のpandasのパッケージ(whl形式)をPyPI内で検索してダウンロードして適当なフォルダ(ここではd:¥tmp)に保存(whlってパッケージ形式の一つととりあえず理解)

で早速インストール

>python -m pip install d:¥tmp¥pandas-0.20.2-cp36-cp36m-win32.whl


とするとエラーがずらずらと出てメッセージからどうやらインターネットに接続しようとして失敗しているらしい、pandasが依存しているパッケージをPyPIに探しにいっているみたいでこれを無効にするために--no-indexオプションを追加する必要があるらしい。

再度オプションを追加して実行

>python -m pip install --no-index d:¥tmp¥pandas-0.20.2.-cp36-cp36m-win32.whl

するとpytzというパッケージが必要というエラーになったのでまだpytzパッケージをダウンロードしてこちらを先にインストール

>python -m pip install --no-index d:¥tmp¥pytz-2017.2-py2.py3-none-any.whl

これでとpandasパッケージをインストールしようと試みるとまた別のパッケージがないと・・・この繰り返しでとりあえず不足と言われる以下のパッケージをダウンロードしてはインストールして無事pandasを導入完了


  • python_dateutil-2.6.0-py2.py3-none.any.whl
  • six-1.10.0-py2.py3-none-any.whl ※sixはpython_dateutilが必要としていた
  • numpy-1.13.0+mkl-cp36-cp36m-win32.whl
上記各パッケージのバージョンは現時点(2017/7/4)の最新を使用

とりあずインストールできたけれどインターネットに繋がらないと面倒・・・。


2017年7月1日土曜日

Windows7+Python3+cx_Oracle

またpythonを使いたくなってきてpythonのバージョンも3に上がっているようなのでインストールメモ

▪️インストール


  • Windows7(64bit)
  • OracleClient11.2.0.4(32bit)
  • Python3.6.1(32bit)
  • cx_Oracle5.3-11g(32bit)
当初はWindowsも64bitだしせっかくだからPythonも64bitを入れていたけれどOracleに接続できるようにcx_Oracleを追加インストールして動かしてみたところ・・・

”%1 は有効な Win32 アプリケーションではありません”

もしかしてと思ったら案の上cx_Oracle使用するOracleClient関係のアプリを使えなっかたぽい、結局pythonとcx_Oracleの32bit版を再インストールして解決できた。

▪️Oracleへの接続確認

>python
>>>import cx_Oracle
>>>con = cx_Oracle.connect('[ユーザID]'/[パスワード]@[ネットワークサービス名]')
>>>print (con.version)
>>>con.close()

▪️ついでにインストールメモとして

  • カスタムインストールしないとデフォルトインストールパスがC:¥users¥ユーザID配下の個人フォルダーになってしまう。
  • インストールウィザードでシステム環境変数のパス追加にチェックしないと後で手動で行う必要がある。

2017年6月17日土曜日

進歩が感じられなかったWindows+WebDav

まさか10年近くぶりにまたWebDavを利用するかもしれなくなるとは思いもよらなかった。

さすがにWindowsのバージョンも変わりサーバ側のアプリもだいぶ成熟したことだろうと思ったのにほとんど挙動が変わらないなんて・・・。


ネットワークを追加してもネットワークドライブとしてマウントししても砂時計が動いたままになったり固まったような挙動になったりとな〜んも変わっていない。

おまけにWebDav経由ではMicrosoftOfficeファイルは開けない、MicrosoftはWebDavにたいして積極的に活用する気がないのかな。

さらにセキュリティを向上させるためにデフォルト設定ではhttpではネットワークドライブ接続できず使う場合はレジストリの変更が必要(Windows7)

HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\BasicAuthLevel


  • 0 - Basic authentication disabled
  • 1 - Basic authentication enabled for SSL shares only
  • 2 or greater - Basic authentication enabled for SSL shares and for non-SSL shares

デフォルトは1らしいので2に変更に変更する”再起動要”

昔と違いWindowsばかりの世の中ではなくなったので違うOSでWebDavがもっと活用されることを期待しよう。

2017年3月31日金曜日

迷惑なHP ProtectTools Security Manager

現バージョンで発生するかは不明でありあくまでも備忘録として

数年前に使用していたHP Compaq Business Desktop シリーズをWindows7 64bitでMS Office2003、MS Office2007で各アプリケーションが中々終了しない事象が発生

仕事上、よく使うExcelでは起動時は普通でも終了させようとすると閉じるを選んでから10秒以上かかる。

インターネットで調べOfficeのパッチや負荷のかかりそうなウィルススキャンソフトを止めてみたりと試みても効果なし。

一時は方法が見つからず強制的にExcelのプロセスを終了するバッチファイルを使っていたぐらいストレスが溜まっていた。

ふと、時間があるときにパソコン内の整理をしていた際、プレインストールされている不要アプリをアンインストールしていた時に偶然Excelを起動・終了するとストレスなく終了した。

ん!!

その直後にアンインストールしたアプリケーションがHP ProtectTools Security Manager群!!

群というのはこのアプリ、タチが悪いことに複数の関連アプリケーションを順番に再起動を伴うアンインストールを行わないといけない。

セールス向上目的のセキュリティ機能だろうけどとんだ迷惑アプリケーションだった!!