2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

家で Postgresql を使う練習をするぜ☆(^q^)

Last updated at Posted at 2018-09-01

だらだらと書く。

Postgresql 10 をインストールして、ビルドパスを設定して pgAdmin4 で操作するのが楽かと思う。

PostgreSQLのインストール~使い方の説明は https://www.dbonline.jp/postgresql/ を読めだぜ。

ビルドパス

多分、

C:\Program Files\PostgreSQL\10\bin

の中に実行したいものはあるだろ。これにパスを通そう。

[Windows] + [Break/Pause] キーをクリックして システム画面を出し、
[システムの詳細設定] メニューをクリックしろだぜ。

「システムのプロパティ」ダイアログボックスが出てきたら、
[詳細設定]タブの [環境変数(N)...]ボタンをクリックしろだぜ。

「システム環境変数」の方の Path に、

C:\Program Files\PostgreSQL\10\bin

を追加しろだぜ。
テキストボックスの中を「;」で区切るやつだったり、
リストで入れるやつだったり
お前のPCの見た目がどうなってるかは知らないが なんとかしろだぜ。

ログイン

[Windows] - [R]キーから 「cmd」打鍵[Enter]キーで コマンド・プロンプトを起動。

### 打鍵
psql --version
### 結果
psql (PostgreSQL) 10.5

バージョン番号を確認して ビルドパスが通っていることを確認。

インストール時に入れた PostgreSQL のパスワードを入れても
入れないな、と思ったら
postgres ユーザーのパスワードなのだった。

psql -U postgres

と打鍵して パスワードを入れてなんとか入る。

やることもないので

\q

と打鍵して psql を終わる。

pgAdmin4

postgreSQL 10 と一緒にインストールした pgAdmin4 が全く動かないので
別途 インストールすることにする。

別記事を読めだぜ。 http://cosmos0906.hatenablog.com/entry/2017/06/12/232320#1-pgAdmin4%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B

そして pgAdmin4 を起動しようとすると、スプラッシュ画面が出たあと消えて、なにも出てこない。

「【PostgreSQL】WindowsにPostgreSQLをインストール」
http://www.yume-map.net/?p=6917

マイクロソフト アカウント にログインしていると、ユーザー名が マルチバイト文字(日本語)になったりして
一部のアプリケーションでエラーの原因になるらしい。

とりあえず マイクロソフトからサインアウト。

pgAdmin4 起動失敗

Fatal Error
An error occurred initialising the application
server:

Failed to launch the application server, server
thread exiting.

をググりたいので1行にする。

Fatal Error An error occurred initialising the application server: Failed to launch the application server, server thread exiting.

「WindowsでもpgAdmin4でサーバーモードしたい!」
https://qiita.com/rzl5/items/ddb419dd3897a1224661

なんの説明もないが、pgAdmin4 は python2.7 系なのだろうか?

しぶしぶ python 2.7系 もインストールしてみる。
ところで 自分のPCの CPU が何かを知っている人とか どこで知ったのだろうか。
Windows x86-64bit とか。 今時 x86-64 だと思うが、 x86-32 と x86-64 の違いとか どこで知るのだろうか。

とりあえず Python を

C:\Python27

にインストール。
pgAdmin4.py のファイルは 私の場合、

C:\Program Files\PostgreSQL\10\pgAdmin 4\web

の下にあるので、エラーのあとに出てくるダイアログボックスのテキストボックスに このパスを入れる。

ブラウザのパスには

C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

を入れてみる。 それでも ダメ。

もうひとつ工夫して

C:\Program Files (x86)\Google\Chrome\Application\chrome.exe %URL%

と書くも、それでも ダメ。

さらに Python のパスを ; で区切って

C:\Python27;C:\Program Files\PostgreSQL\10\pgAdmin 4\web

と工夫するも、それでも ダメ。

「待望のpgAdmin4ベータ版が出たので、Windowsのポータブルアプリ化(管理者権限なく使える)」
https://kenpg.bitbucket.io/blog/201606/11.html

msvcp120.dllとmsvcr120.dllが必要

と書いてあるが インストーラーからは何の説明もない。

msvcp120.dll は Microsoft のサイトからインストールする。

ダウンロードしたファイルを実行すると msvcp120.dll のインストールが完了するはず。
というか、

C:\Windows\System32\msvcp120.dll
C:\Windows\System32\msvcr120.dll

Windows10 に最初から すでに入っている。

Python を使うために設定するパスは 次の2つらしい。

set venv=%~dp0venv\
set pythonpath=%venv%Lib\site-packages;%venv%Lib;%venv%Lib\lib-tk;%venv%DLLs

venv は Python の環境とのこと。 これも何の説明もない。
じゃあ わたしは [Windows] - [Break/Pause] からたどって環境変数ダイアログボックスを出して

システム環境変数名
pythonpath C:\Python27\Lib\site-packages;C:\Python27\Lib;C:\Python27\Lib\lib-tk;C:\Python27\DLLs

と設定してみる。

それでも ダメ。

pgAdmin4 は 32bit だから、 python も 32bit 用にしないとダメと記事に書いてるな。
なぜ 64bit を用意しないのか謎だが仕方ない。 32bit の python2.7 系を入れてみる。

インストール ディレクトリ名は

C:\Python27(32bit)\

に変更し、設定を全部書き換える。

C:\Python27(32bit);C:\Python27(32bit)\Lib\site-packages;C:\Python27(32bit)\Lib;C:\Python27(32bit)\Lib\lib-tk;C:\Python27(32bit)\DLLs;C:\Program Files\PostgreSQL\10\pgAdmin 4\web

それでも ダメ。

PC を再起動しても ダメ。

インストール失敗。

4時間ぐらい いじってみたが 起動しないので ここまで。

PostgreSQL が 64bit で、 pgAdmin4 が 32 bit

なのが いけないのかもしれない。
PostgreSQL から pgAdmin4 をアンインストールする。

python2.7系の 64bit 版もアンインストールする。

localhost:5050

記事を参考に .bat ファイルを作ったり ブラウザでアクセスしたりするが、
「このサイトにアクセスできません」 と出るだけで pgAdmin4 の画面のようなものは出てこない。

わたしの環境の場合、以下のような .bat ファイルを作る。

cd /d "C:\Program Files (x86)\pgAdmin 4\v3\venv"
powershell -WindowStyle Hidden -command ".\python ../web/pgAdmin4.py"

.bat ファイルをダブルクリックして 30秒待って ブラウザでアクセスしても
「このサイトにアクセスできません」 と出るだけ。

とりあえず pgAdmin4 と Postgresql と python を アンインストールする。
作った環境変数も 消しておく。

PostgreSQL を 32bit版にしたらどうか?

と突っ込まれたので やるにはやるが、 なんで GUI に合わせて アプリケーションを 32bit版に
ダウングレードしなければならないのか……。

あと 2020年頃には 32bit アプリケーションは OSから サポート切れを起こされて 滅亡の流れに行くと思う。
なんで 滅亡する方に 合わせなければならないのか……。

システム環境変数 Path を

C:\Program Files (x86)\PostgreSQL\10\bin

に変えて、コマンド プロンプトを再起動。

pgAdmin4 を起動すると 同じエラー。

32bit版の Python2.7 を入れなおす。
ディレクトリは C:\Python27(x86)\

set venv=C:\Python27(x86)
set pythonpath=%venv%Lib\site-packages;%venv%Lib;%venv%Lib\lib-tk;%venv%DLLs

Configuration ダイアログボックスに値を設定する。

C:\Program Files (x86)\Google\Chrome\Application\chrome.exe %URL%

それでもダメ。 また2時間無駄にした。

記事の情報の出どころは 以下のサイトらしい。

「pgAdmin4ベータ版をWindowsで動かす(ブラウザモード編)」
https://kenpg.bitbucket.io/blog/201606/12.html

cd /d "C:/Program Files (x86)/pgAdmin 4/v3/venv"
powershell -WindowStyle Hidden -command "./python C:/Program Files (x86)/PostgreSQL/10/pgAdmin 4/web/pgAdmin4.py"

スラッシュの向きを変えたり、ディレクトリ変えたりするも それでも ダメ。

記事を書いている人が PowerShell を起動したり、何がやりたいのかわからない。
自分で書き直す。

C:\Users\むずでょ>cd C:\Python27(x86)

C:\Python27(x86)>python "C:/Program Files (x86)/PostgreSQL/10/pgAdmin 4/web/pgAdmin4.py"
Traceback (most recent call last):
  File "C:/Program Files (x86)/PostgreSQL/10/pgAdmin 4/web/pgAdmin4.py", line 34, in <module>
    import config
  File "C:\Program Files (x86)\PostgreSQL\10\pgAdmin 4\web\config.py", line 29, in <module>
    from pgadmin.utils import env, IS_PY2, IS_WIN, fs_short_path
  File "C:\Program Files (x86)\PostgreSQL\10\pgAdmin 4\web\pgadmin\__init__.py", line 18, in <module>
    from flask import Flask, abort, request, current_app, session, url_for
ImportError: No module named flask

C:\Python27(x86)>

エラーメッセージを見ても分からん。

pgAdmin4.py import config from flask import Flask, abort, request, current_app, session, url_for ImportError: No module named flask

適当に1行にして ググる。

分からん。

分からん。

python 2.7 も覚えたくないし、 Postgresql を使うのは止める。

3回目。

わけわからん記事は読まないようにし、公式のを読む。

64bit 版の Postgresql をインストール。
この際、pgAdmin4 はチェックボックスを外す。

Windows版の Apache 2.4 系を入れる。
https://httpd.apache.org/download.cgi

「Windows版Apacheをインストールする」
http://d.hatena.ne.jp/Kazuhira/20170128/1485621099

アパッチのインストールから起動は記事にした。
https://qiita.com/muzudho1/items/b6065566f5ef97359788

そして説明が無いんだが、Windows版は Python のバージョンに制限があるのかもしれない。
Python は 2.7系 32bit を入れることにする。

pgAdmin4 は 32bit しかないんで それを入れる。
設定ファイルを設定しないと 動かないのに、Launch pgAdmin4 とかミスリードするのはやめてほしい。

主語や場所が抜けるのは 日本人も外国人も同じようだが
わたしの場合、以下のディレクトリに

C:\Program Files (x86)\pgAdmin 4\v3\web

設定ファイルなどが入っている。ここに、

config_local.py

LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'
SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db'
SESSION_DB_PATH = '/var/lib/pgadmin4/sessions'
STORAGE_DIR = '/var/lib/pgadmin4/storage'

といったファイルを作成して置くことにする。 Linux のディレクトリになっているが
Windows で置くとどうなるのか。

次にインストールしたばかりの python (command line) を起動。

import os
os.getcwd()
### 出力
'C:\\Python27'

と打鍵。カレントディレクトリを調べる。以下で移動。

os.chdir("C:\\Program Files (x86)\\pgAdmin 4\\v3\\web")
os.getcwd()
### 出力
'C:\\Program Files (x86)\\pgAdmin 4\\v3\\web'

次にセットアップを実行。

>>> python setup.py
  File "<stdin>", line 1
    python setup.py
               ^
SyntaxError: invalid syntax

「Pytohn(3.5.1)の初歩的な構文エラーについて」
https://teratail.com/questions/28475

コマンド プロンプトでやってみる。

C:\Users\むずでょ>cd C:\\Program Files (x86)\\pgAdmin 4\\v3\\web

C:\Program Files (x86)\pgAdmin 4\v3\web>python setup.py
'python' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

ビルドパスを通せばいいのか。

venv C:\Python27|
pythonpath %venv%Lib\site-packages;%venv%Lib;%venv%Lib\lib-tk;%venv%DLLs
Path 「%pythonpath%」を末尾に追加。
C:\Program Files (x86)\pgAdmin 4\v3\web>C:\Program Files (x86)\pgAdmin 4\v3\web>python setup.py
アクセスが拒否されました。

コマンドプロンプトを管理者で実行することにする。

C:\Windows\system32>cd C:\\Program Files (x86)\\pgAdmin 4\\v3\\web

C:\Program Files (x86)\pgAdmin 4\v3\web>python setup.py
'python' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

Path に直接 C:\Python27\ を追加する。

C:\Program Files (x86)\pgAdmin 4\v3\web>python setup.py
Traceback (most recent call last):
  File "setup.py", line 15, in <module>
    from pgadmin.model import db, Version, SCHEMA_VERSION as CURRENT_SCHEMA_VERSION
  File "C:\Program Files (x86)\pgAdmin 4\v3\web\pgadmin\__init__.py", line 18, in <module>
    from flask import Flask, abort, request, current_app, session, url_for
ImportError: No module named flask

なんのこっちゃ。

python setup.py pgadmin.model import db, Version, SCHEMA_VERSION as CURRENT_SCHEMA_VERSION     from flask import Flask, abort, request, current_app, session, url_for ImportError: No module named flask

1行にしてググる。

「pipの使い方とインストール」
https://www.python-izm.com/tips/pip/

C:\Program Files (x86)\pgAdmin 4\v3\web>python -m pip -V
pip 9.0.3 from C:\Python27\Lib\site-packages (python 2.7)

勝手にコマンドを作る。

pip install pgadmin4-3.2-py2.py3-none-any.whl
C:\Program Files (x86)\pgAdmin 4\v3\web>pip
'pip' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
C:\Python27\Scripts

にもパスを通す。

C:\Program Files (x86)\pgAdmin 4\v3\web>pip install pgadmin4-3.2-py2.py3-none-any.whl
Requirement 'pgadmin4-3.2-py2.py3-none-any.whl' looks like a filename, but the file does not exist
Processing c:\program files (x86)\pgadmin 4\v3\web\pgadmin4-3.2-py2.py3-none-any.whl
Exception:
Traceback (most recent call last):
  File "C:\Python27\Lib\site-packages\pip\basecommand.py", line 215, in main
    status = self.run(options, args)
  File "C:\Python27\Lib\site-packages\pip\commands\install.py", line 324, in run
    requirement_set.prepare_files(finder)
  File "C:\Python27\Lib\site-packages\pip\req\req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "C:\Python27\Lib\site-packages\pip\req\req_set.py", line 620, in _prepare_file
    session=self.session, hashes=hashes)
  File "C:\Python27\Lib\site-packages\pip\download.py", line 809, in unpack_url
    unpack_file_url(link, location, download_dir, hashes=hashes)
  File "C:\Python27\Lib\site-packages\pip\download.py", line 715, in unpack_file_url
    unpack_file(from_path, location, content_type, link)
  File "C:\Python27\Lib\site-packages\pip\utils\__init__.py", line 599, in unpack_file
    flatten=not filename.endswith('.whl')
  File "C:\Python27\Lib\site-packages\pip\utils\__init__.py", line 482, in unzip_file
    zipfp = open(filename, 'rb')
IOError: [Errno 2] No such file or directory: 'C:\\Program Files (x86)\\pgAdmin 4\\v3\\web\\pgadmin4-3.2-py2.py3-none-any.whl'
You are using pip version 9.0.3, however version 18.0 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
python -m pip install --upgrade pip
C:\Program Files (x86)\pgAdmin 4\v3\web>python -m pip install --upgrade pip
Collecting pip
Exception:
Traceback (most recent call last):
  File "C:\Python27\Lib\site-packages\pip\basecommand.py", line 215, in main
    status = self.run(options, args)
  File "C:\Python27\Lib\site-packages\pip\commands\install.py", line 324, in run
    requirement_set.prepare_files(finder)
  File "C:\Python27\Lib\site-packages\pip\req\req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "C:\Python27\Lib\site-packages\pip\req\req_set.py", line 620, in _prepare_file
    session=self.session, hashes=hashes)
  File "C:\Python27\Lib\site-packages\pip\download.py", line 821, in unpack_url
    hashes=hashes
  File "C:\Python27\Lib\site-packages\pip\download.py", line 659, in unpack_http_url
    hashes)
  File "C:\Python27\Lib\site-packages\pip\download.py", line 880, in _download_http_url
    file_path = os.path.join(temp_dir, filename)
  File "C:\Python27\Lib\ntpath.py", line 85, in join
    result_path = result_path + p_path
UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 7: ordinal not in range(128)
You are using pip version 9.0.3, however version 18.0 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?