Linux から NAS 上のアクセス
Linux から NAS 上のファイルを読み込むコード
Windows からであれば次の様な指定が可能.
tstring test_imo = _T(“//DS116/web/i_Tools/Doc/blog/3D_Data/Test_cube_line.imo”) ;
使用する関数や API によっては “\\” でないとうまくない場合もある.
tstring test_imo = _T(“\\\\DS116\\web\\i_Tools\\Doc\\blog\\3D_Data\\Test_cube_line.imo”) ;
Linux では mount すれば次の様な指定が可能なことは以前に調べている.
tstring test_imo = _T(“/mnt/ds116/web/i_Tools/Doc/blog/3D_Data/Test_cube_line.imo”) ;
今回は異なる方法で何か方法はないかと調べてみた.
結果としては「ファイルマネージャ」などでアクセスできる状態にする必要があるのであまり mount と変わらない.
調べたのは次の様な手順.
「端末」を開いて ls と入力.
そこに「ファイルマネージャ」からディレクトリをドロップ.
「端末」で「Enter」するとアクセスできることを確認.
tstring test_imo = _T(“/run/user/1000/gvfs/smb-share:server=ds116.local,share=web/i_Tools/Doc/blog/3D_Data/Test_cube_line.imo“) ;
WebGL three.js OBJLoader ‘l’
以前 OBJ 内の線の情報を使えないかと思い調べたが,その時はわからないでいた.
Wiki Wavefront .obj file を参考に OBJ ファイルを編集して three.js で読み込んだがうまく読めなかった.
ちょっと別件で詰まってしまったので気分転換に調べていたら…
次の様な指定だとうまくいきそうとわかった.
l 1/ 2/
l 1/ 2/ 2/ 3/ 3/ 4/ 4/ 1/
UWP アプリ
2016/03 に試してうまく動作しなかった UWP アプリ.
一度起動するがすぐにエラーメッセージ.
—————————
Microsoft Visual Studio
—————————
Windows ストア アプリ ‘5a7750b3-af94-47d7-a064-b9adc49f8813_7r65t4tynye04!App’ をアクティブにできません。アクティベーション要求がエラー ‘操作はサポートされていません。不明なエラー: 0x80040904’ で失敗しました。
この問題のトラブルシューティングについては、ヘルプを参照してください。
—————————
OK ヘルプ
—————————
「そんなもん」と思い触らないでいたが,DirectX があったので今の開発機で試してみた.
するとうまく動作する.
どこかの設定が違うのだろうか?それともライセンスの関係?
VC Linux でのデバッグ
VC Linux で GLUT
GLUT を使用したコード
ビルドするとリンクでのエラーとなってしまう.
1>------ ビルド開始: プロジェクト: T_GL2, 構成: Debug x64 ------ 1>ソースを検証します 1>リモートでソースを 'fedora' にコピーします 1>アーキテクチャを検証します 1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Application Type\Linux\1.0\Linux.targets(184,5): warning : 配置で使用されるリモート システムに互換性のないプラットフォーム アーキテクチャ ('x64'、'ARM') があります。 1>アーキテクチャを検証します 1>リモート ビルドを開始しています 1>ソースをコンパイルします: 1>オブジェクトをリンクしています 1>/usr/bin/ld : error : /home/Iwao/projects/T_GL2/obj/x64/Debug/main.o: in function `idle()': 1>D:\Document\VS\VS\2019\T_Linux\T_GL2\main.cpp(51): error : undefined reference to `glutPostRedisplay' 1>/usr/bin/ld : error : /home/Iwao/projects/T_GL2/obj/x64/Debug/main.o: in function `display()': 1>D:\Document\VS\VS\2019\T_Linux\T_GL2\main.cpp(56): error : undefined reference to `glClear' 1>/usr/bin/ld : error : /home/Iwao/projects/T_GL2/main.cpp:63: undefined reference to `glMatrixMode' 1>/usr/bin/ld : error : /home/Iwao/projects/T_GL2/main.cpp:64: undefined reference to `glLoadIdentity' 1>/usr/bin/ld : error : /home/Iwao/projects/T_GL2/main.cpp:65: undefined reference to `gluLookAt' 1>/usr/bin/ld : error : /home/Iwao/projects/T_GL2/main.cpp:67: undefined reference to `glColor3d' ... 1>/usr/bin/ld : error : /home/Iwao/projects/T_GL2/main.cpp:165: undefined reference to `glutMainLoop' 1>collect2 : error : エラー: ld はステータス 1 で終了しました 1>プロジェクト "T_GL2.vcxproj" のビルドが終了しました -- 失敗。 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
コマンドでの -l オプションにあたる指定が足りないため.
「リンカー」-「コマンドライン」-「追加のオプション」に以下を追加.
-lglut -lGL -lGLU
VC Linux の include 設定
VC Linux プロジェクトの include 設定
次のようなコードをビルドするのに include の設定がわからなかった.
#include <cstdio> #include "gettickc.hxx" int main() { printf("VC 2019 hello !\n"); for (long index = 0; index < 100; index++) { ::Sleep_ms(100); printf("hello \t"); fflush(stdout); if (index%5 == 4) { printf("\n"); } } printf("VC 2019 hello !\n"); return 0; }
MFC のプロジェクトなどであれば,次の所で指定している.
C:\Users\Iwao\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.x64.user.props
共通のインクルードディレクトリは,次の様なもの.
\\DevS\Documents\Develop\_.SRC\__CPR_;\\DevS\Documents\Develop\_.SRC\__Iwao;…
ソース内で次の様に指定してもエラーに.
#include “\\DevS\Documents\Develop\_.SRC\__CPR_\i_define.hxx”
1>main.cpp 1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Application Type\Linux\1.0\Linux.targets(412,5): error : g++ がコード 1 で終了しました。詳細については、出力ウィンドウでビルド出力をご確認ください (注: 出力ウィンドウで詳細を確認するには、ツール オプションでビルド出力の詳細度を変更する必要があります)。 1>プロジェクト "ConsoleApplication2.vcxproj" のビルドが終了しました -- 失敗。
他に #include “//devs/documents/develop/_.src/__cpr_/i_define.hxx” としてみたが変わらず.
Raspberry Pi でビルドするともう少しわかりやすいエラーの表示になった.
1>main.cpp 1>D:\Document\VS\VS\2019\T_Linux\ConsoleApplication2\main.cpp(18,10): error : \\DevS\Documents\Develop\_.SRC\__CPR_\i_define.hxx: そのようなファイルやディレクトリはありません 1>D:\Document\VS\VS\2019\T_Linux\ConsoleApplication2\main.cpp(18,10): error : #include "\\DevS\Documents\Develop\_.SRC\__CPR_\i_define.hxx" 1>D:\Document\VS\VS\2019\T_Linux\ConsoleApplication2\main.cpp(18,10): error : ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1>D:\Document\VS\VS\2019\T_Linux\ConsoleApplication2\main.cpp(18,10): error : compilation terminated. 1>プロジェクト "ConsoleApplication2.vcxproj" のビルドが終了しました -- 失敗。
いろいろやって,次の様に指定することでうまくいった.
#include “/mnt/_.src/__cpr_/i_define.hxx”
プロジェクトの設定で次のものを指定することでビルドできることを確認.
/mnt/_.src/__CPR_;/mnt/_.src/__Iwao;/mnt/_.src/__Mlt_;/mnt/_.src/_gcc;/mnt/_.src/Test
/mnt/_.src はマウントしている.
Linux から Windows 環境への接続
g++ インクルードパスの設定
Fedora への ssh 接続
Fedora では「設定」-「共有」-「リモートログイン」がそれにあたる.
VS でのリモートの設定 は「ツール」-「オプション」で開いた「クロスプラットフォーム」にある.
プロジェクトの設定も必要で「構成プロパティ」-「全般」の「リモートビルドマシン」.
これが合っていないとビルドエラーになる.
1>------ ビルド開始: プロジェクト: ConsoleApplication1, 構成: Release x64 ------ 1>Validating sources 1>Copying sources remotely to '192.168.1.34' 1>Validating architecture 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\Application Type\Linux\1.0\Linux.targets(151,5): error : Current project architecture 'x64' is incompatible with the remote system architecture 'ARM' ('ARM'). Please switch the project architecture to 'ARM' in Configuration Manager. 1>プロジェクト "ConsoleApplication1.vcxproj" のビルドが終了しました -- 失敗。 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
Ubuntu では ssh サーバが入っていないみたいで次のコマンドでインストール.
$ sudo apt install openssh-server
何故か password を受け付けない?
Win10 19h1 のコマンドプロンプトで次の様にしても接続できない.
C:\Users\Iwao\AppData\Local\Temp>ssh -l Iwao -p 22 192.168.1.39 Iwao@192.168.1.39's password: Permission denied, please try again. Iwao@192.168.1.39's password:
何か他の設定が足りないのか?
設定関連のドキュメントは次の所にあった.
Linux ワークロードのダウンロード、インストール、セットアップ
VC 2017 Linux プロジェクト
VC 2017 を弄っていたら,Linux のプロジェクトの作成が可能になっていたので試してみた.
どのタイミングだったか忘れたが,SSH 接続が必要になる.
今まで設定してある Raspberry Pi に接続してみた.
Raspberry Pi 側の設定は「Raspberry Pi の設定」-「インターフェイス」にある.
ビルド時に使用する include は以下にコピーされている.これは Raspberry Pi の /user/include と同じ内容?
C:\Users\Iwao\AppData\Local\Microsoft\Linux\HeaderCache\1.0\-1277036696\usr\include
ビルドして出来上がった .out は /home/pi/projects/…/bin/ARM/Release にある.
WebGL three.js r91 – r109
WebGL three.js の r91 以降の変更による影響のメモ
OBJ と MTL を使用しているので webgl_loader_obj_mtl.html の変更内容.
r91 → r96
var mtlLoader = new THREE.MTLLoader(); mtlLoader.setPath( 'models/obj/male02/' ); mtlLoader.load( 'male02_dds.mtl', function( materials ) { materials.preload(); var objLoader = new THREE.OBJLoader(); objLoader.setMaterials( materials ); objLoader.setPath( 'models/obj/male02/' ); objLoader.load( 'male02.obj', function ( object ) { object.position.y = - 95; scene.add( object ); }, onProgress, onError ); });
new THREE.MTLLoader() .setPath( 'models/obj/male02/' ) .load( 'male02_dds.mtl', function ( materials ) { materials.preload(); new THREE.OBJLoader() .setMaterials( materials ) .setPath( 'models/obj/male02/' ) .load( 'male02.obj', function ( object ) { object.position.y = - 95; scene.add( object ); }, onProgress, onError ); } );
→ r97
js/Detector.js がなくなった.
→ r99
r97 var onError = function ( xhr ) { };
r99 var onError = function () { };
→ r101
jsm が追加されている.
→ r105
style が main.css に.
→ r106
module を使用する様に変更されている.
→ r109
setTexturePath が使えなくなったのでコメントに.
// mtlLdr.setTexturePath (imoPath) ; mtlLdr.setPath (imoPath) ;
SDI exe で変換後ドキュメントを開く
SDI exe で,変換後のデータをそのまま開きたかった.
OnOpenDocument で開くことは可能だが,幾つかうまくない所がある.
CDocument の OnOpenDocument 前後の動作をデバッガで追いかけると,ビューの初期化が足りない.
CView* を求めて OnInitialUpdate で対応.
void CX__Doc::OnConvert() { if (GetPathName().IsEmpty()) { return ; } tstring new_name ; { // ... ::G3_to_NEW(...,new_name.c_str()) ; } { OnNewDocument () ; OnOpenDocument(new_name.c_str()) ; SetPathName (new_name.c_str()) ; { CFrameWnd* frame = (CFrameWnd*)AfxGetMainWnd() ; if (frame != NULL) { CView* view = frame->GetActiveView() ; if (view != NULL) { view->OnInitialUpdate() ; } } } } }
LNK1143 : ファイルが無効であるか…
VC 6 で 2017/04 頃のプロジェクトをビルドすると,
fatal error LNK1143: ファイルが無効であるか、 または壊れています: COMDAT セクション 0xFFFF8000 のシンボルがありません。
--------------------構成: GLSmth - Win32 Release-------------------- GLSm.exe - エラー 0、警告 0 --------------------構成: GLSmth - Win32 Debug-------------------- GLSm.exe - エラー 0、警告 0 --------------------構成: T_tjs_1 - Win32 Release-------------------- T_tjs_1.exe - エラー 0、警告 0 --------------------構成: T_tjs_1 - Win32 Debug-------------------- T_tjs_1.exe - エラー 0、警告 0 --------------------構成: T_tjs_2 - Win32 Release-------------------- T_tjs_2.exe - エラー 0、警告 0 --------------------構成: T_tjs_2 - Win32 Debug-------------------- T_tjs_2.exe - エラー 0、警告 0 --------------------構成: T_tjs_3 - Win32 Release-------------------- T_tjs_3.exe - エラー 0、警告 0 --------------------構成: T_tjs_3 - Win32 Debug-------------------- T_tjs_3.exe - エラー 0、警告 0 --------------------構成: T_tjs_4 - Win32 Release-------------------- T_tjs_4.exe - エラー 0、警告 0 --------------------構成: T_tjs_4 - Win32 Debug-------------------- コンパイル中... T_tjs_4.cpp ... c:\program files\microsoft visual studio\vc98\mfc\include\afxtempl.h(439) : fatal error C1076: コンパイラの制限 : ヒープの領域を使い果たしました; 上限を設定するために /Zm オプションを使用してください。 c:\program files\microsoft visual studio\vc98\include\xlocmon(106): クラス テンプレートのメンバ関数 'void __thiscall CArray::SetAtGrow(int,class Material)' のコンパイル中 cl.exe の実行エラー T_tjs_4.exe - エラー 1、警告 0 --------------------構成: thrjs_3d - Win32 Release-------------------- thrjs_3d.exe - エラー 0、警告 0 --------------------構成: thrjs_3d - Win32 Debug-------------------- thrjs_3d.exe - エラー 0、警告 0 --------------------構成: thrjs_mb - Win32 Release-------------------- thrjs_mb.exe - エラー 0、警告 0 --------------------構成: thrjs_mb - Win32 Debug-------------------- リンク中... thrjs_mb.obj : fatal error LNK1143: ファイルが無効であるか、 または壊れています: COMDAT セクション 0xFFFF8000 のシンボルがありません。 link.exe の実行エラー thrjs_mb.exe - エラー 1、警告 0 --------------------構成: thrjs_mk - Win32 Release-------------------- thrjs_mk.exe - エラー 0、警告 0 --------------------構成: thrjs_mk - Win32 Debug-------------------- thrjs_mk.exe - エラー 0、警告 0
最初 C1076 のエラーがあったが,この対応には /Zm150 を追加.
GLSmth 以外のプロジェクトは,コンソール AP .
VC 7 や 8 では問題なくビルドできる.
これらのプロジェクトでは main() を含む cpp に他の cpp をインクルードしている.
VC 6 では,ある大きさを超える cpp のコンパイルで正しく obj が作成できないみたい.
出来上がっている obj のファイルサイズは 21 MB 位.
main を含むソースを分割することで対応可能.
//itl.mydns.jp/ のパンくずリスト …
先日届いたメール.
https://itl.mydns.jp/joomla/ のパンくずリスト マークアップを修正する
Google Search Console Team <sc-noreply@google.com>
2019/09/20 (金) 17:46
Message type: [WNC-20064166]
Search Console
https://itl.mydns.jp/joomla/ でパンくずリスト マークアップを修正する
Google システムによってお客様のサイトが 15パンくずリスト マークアップに関する問題の例 の問題があると判断されました。このため、お客様サイトのパンくずリストのページが Google 検索でリッチリザルトとして表示されない可能性があります。
Search Console では、このリッチリザルト タイプ専用の新しいレポートをご利用いただけます。新しいレポートでは、検索結果でリッチリザルトが正しく表示されるよう、問題のあるページを特定および修正し、Google に再送信することができます。
パンくずリストレポートを開く
Google LLC, 1600 Amphitheatre Parkway Mountain View, CA 94043 | このメールは、Google Search Console にサイトが登録されているすべてのお客様にお送りしています | この種類のメッセージの配信を停止する
パートナーを追加この Search Console アカウントについてのメッセージを受信するパートナーを追加できます
Joomla! ページの「パンくずリスト」の様だが,よくわからない.
特に何もしていないのに,メールの時点から減っている.
対応方法がわからないので様子見.
Raspberry Pi Desktop の設定
Raspberry Pi Desktop を自分好みにするためのいくつかの設定.
Scratch は「日本語」になっているが Scratch 2 は英語のまま.
「File」メニューの左をクリックすると言語が選べて,下の方に「日本語」がある.
ブラウザの Chromium
「メインメニュー」の「設定」-「Add / Remove Software」.
「Chromium」で検索して「ウェブブラウザ – 言語パック」にチェック.
「OK」でインストール.
私の個人的なテスト用サイトの表示は,持っている Raspberry Pi よりスムーズ?
itl.mydns.jp
Raspberry Pi Desktop インストール
「Debian Stretch with Raspberry Pi Desktop」のインストール
次の所を参考にインストール.
Windows PCにPIXEL(Raspberry Pi OS) for PCをインストールしてみよう (2/3)
見た目が異なるだけで指定内容はほぼ同じ.
もう一つ見つけたのは,
[メモ] VirtualBoxにて、Raspberry Pi Desktop(2017-11-16-rpd-x86-stretch版)
こちらは今とほぼ同じ様な表示で,こちらの方がわかりやすいかもしれない.
他の Linux 環境と同じようにするためのいくつかの設定.
/mnt/_.src を作成.
$ sudo mkdir /mnt/_.src
mount や CPATH を設定する set_z_inc.sh をコピー.
GLUT のインストール.
$ sudo apt install freeglut3 freeglut3-dev
$ g++ test.cpp -lGL -lGLU -lglut
PyOpenGL のインストール.
$ pip install PyOpenGL
$ pip install PyOpenGL_accelerate
VNC Viewer での画面コピー
検索すると設定があることは見つかるが,設定場所が見当たらない.
VNC Viewer のメニューから「Properties…」を開くと,「Options」タブ内にあった.
「Pass special keys …」のチェックを外すことで意図した動作に.
Raspberry Pi にインストール
Raspberry Pi 用に micro SD を購入.
パッケージから micro SD を取り出すのがちょっと大変(金属部分に触ってしまいそう).
micro SD の動作確認のために「KoKaRasPi1181118.img」をコピーして OS が起動することを確認.
今度は Raspbian からのインストール.
ダウンロードできるページにアクセスすると幾つかあり.
https://www.raspberrypi.org/downloads/ NOOBS と Raspbian
今回は Raspbian Buster with desktop and recommended software を選択.
「2019-07-10-raspbian-buster-full.img」を microSD にコピー.
あとは Raspberry Pi に挿して起動.
幾つかの設定を「Japanese」に.
再起動して Wi-Fi などの設定後,ソフトウェアのアップデートに.これは 1 時間程度かかった.
また再起動して何とか使える状態に.
ssh で接続しようとすると,何かの設定をしなければならない様なメッセージ.
C:\Users\Iwao\AppData\Local\Temp>ssh -l pi 192.168.1.34 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the ECDSA key sent by the remote host is SHA256:+XCHdOHLyB0hFfxDrAR2xEvYhuiylCLzFYhmznJyzYg. Please contact your system administrator. Add correct host key in C:\\Users\\Iwao/.ssh/known_hosts to get rid of this message. Offending ECDSA key in C:\\Users\\Iwao/.ssh/known_hosts:1 ECDSA host key for 192.168.1.34 has changed and you have requested strict checking. Host key verification failed. C:\Users\Iwao\AppData\Local\Temp>
検索すると,
SSH接続で WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
エディタで …/.ssh/known_hosts の 1 行目の 192.168.1.34 を 192.168.1.35 に.
もう一度,ssh -l pi 192.168.1.34 とすることで接続できた.
また,known_hosts には 192.168.1.34 が追加されている.
192.168.1.35 にしたものを 192.168.1.34 に戻すことで,前の SD でも動作可能なことを確認.
2019/09/21
microSD が増えてきたので,ケースを購入.
レビューにある様に,収まりが良くない.
PyOpenGL インストール – 2
今度は Ubuntu 環境へのインストール.
先ず Python 2.7 .
iwao@VB-Ubuntu:~$ sudo apt install python [sudo] iwao のパスワード: パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: libpython-stdlib libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib python-minimal python2 python2-minimal python2.7 python2.7-minimal 提案パッケージ: python-doc python-tk python2-doc python2.7-doc binfmt-support 以下のパッケージが新たにインストールされます: libpython-stdlib libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib python python-minimal python2 python2-minimal python2.7 python2.7-minimal アップグレード: 0 個、新規インストール: 10 個、削除: 0 個、保留: 9 個。 3,883 kB のアーカイブを取得する必要があります。 この操作後に追加で 16.7 MB のディスク容量が消費されます。 続行しますか? [Y/n]
iwao@VB-Ubuntu:~$ pip Command 'pip' not found, but can be installed with: sudo apt install python-pip iwao@VB-Ubuntu:~$ sudo apt install python-pip パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: javascript-common libexpat1 libexpat1-dev libjs-jquery libjs-sphinxdoc libjs-underscore libpython-all-dev libpython-dev libpython2-dev libpython2.7 libpython2.7-dev python-all python-all-dev python-asn1crypto python-cffi-backend python-configparser python-crypto python-cryptography python-dbus python-dev python-entrypoints python-enum34 python-gi python-idna python-ipaddress python-keyring python-keyrings.alt python-pip-whl python-pkg-resources python-secretstorage python-setuptools python-six python-wheel python-xdg python2-dev python2.7-dev 提案パッケージ: apache2 | lighttpd | httpd python-crypto-doc python-cryptography-doc python-cryptography-vectors python-dbus-dbg python-dbus-doc python-enum34-doc python-gi-cairo libkf5wallet-bin gir1.2-gnomekeyring-1.0 python-gdata python-keyczar python-secretstorage-doc python-setuptools-doc 以下のパッケージが新たにインストールされます: javascript-common libexpat1-dev libjs-jquery libjs-sphinxdoc libjs-underscore libpython-all-dev libpython-dev libpython2-dev libpython2.7 libpython2.7-dev python-all python-all-dev python-asn1crypto python-cffi-backend python-configparser python-crypto python-cryptography python-dbus python-dev python-entrypoints python-enum34 python-gi python-idna python-ipaddress python-keyring python-keyrings.alt python-pip python-pip-whl python-pkg-resources python-secretstorage python-setuptools python-six python-wheel python-xdg python2-dev python2.7-dev 以下のパッケージはアップグレードされます: libexpat1 アップグレード: 1 個、新規インストール: 36 個、削除: 0 個、保留: 8 個。 37.0 MB 中 36.9 MB のアーカイブを取得する必要があります。 この操作後に追加で 72.7 MB のディスク容量が消費されます。 続行しますか? [Y/n]
PyOpenGL .
$ pip install PyOpenGL
$ pip install PyOpenGL_accelerate
Ubuntu はこのインストールで良いみたい.
Fedora の様に OpenGL.GL にあたるパッケージのインストールは必要なさそう.
Raspberry Pi へのインストール.
Python 2.7 は入っているので PyOpenGL のインストール.
$ pip install PyOpenGL
$ pip install PyOpenGL_accelerate
これだけ良いみたい.
2020/07/29
PyOpenGL 3.x The Python OpenGL Binding
PyOpenGL インストール
この記事は 2019/09 に書いたものです.
現在は Python 3.x 対応になっています.
PyOpenGL は Python 2.7 が奨励みたいで,Fedora 環境に Python 2.7 をインストール.
[Iwao@fedora ~]$ python bash: python: コマンドが見つかりませんでした... コマンド python' を提供するためにパッケージ 'python-unversioned-command' をインストールしますか? [N/y] y * キューで待機中... * パッケージの一覧をロード中。... 以下のパッケージはインストールされるべきものです: gdbm-1:1.18-4.fc30.x86_64 A GNU set of database routines which use extensible hashing python-unversioned-command-2.7.16-2.fc30.noarch The "python" command that runs Python 2 python2-2.7.16-2.fc30.x86_64 An interpreted, interactive, object-oriented programming language python2-libs-2.7.16-2.fc30.x86_64 Runtime libraries for Python 2 python2-pip-19.0.3-3.fc30.noarch A tool for installing and managing Python 2 packages python2-setuptools-40.8.0-1.fc30.noarch Easily build and distribute Python packages 変更したまま継続しますか? [N/y] y * キューで待機中... * 認証を待ち受け中... * キューで待機中... * パッケージをダウンロード中... * データを要求中... * 変更をテスト中... * パッケージのインストール中... [Iwao@fedora ~]$
次は PyOpenGL のインストール.
インストールは次のものらしい.
$ pip install PyOpenGL
$ pip install PyOpenGL_accelerate
【Python】PyOpenGLのインストールからウィンドウ表示まで
PythonのOpenGLライブラリ「PyOpenGL」はPython3系では動かないのね
次の様なウィンドウを表示するだけのコードでエラー.
ImportError: No module named OpenGL.GL
from OpenGL.GL import * from OpenGL.GLUT import * def draw(): glClearColor(1.0, 1.0, 0.5, 0.0) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) glFlush() glutSwapBuffers() def main(): glutInit(sys.argv) glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH) glutInitWindowSize(300, 300) glutCreateWindow("PyOpenGL") glutDisplayFunc(draw) glutMainLoop() main()
[Iwao@fedora pyopengl]$ python test.py Traceback (most recent call last): File "test.py", line 3, infrom OpenGL.GL import * ImportError: No module named OpenGL.GL [Iwao@fedora pyopengl]$
OpenGL 関係が足りないみたいで検索すると python-pyopengl が必要とある.
Pythonでグラフィックやるには?
[Iwao@fedora py_math]$ sudo dnf install python-pyopengl* [sudo] Iwao のパスワード: メタデータの期限切れの最終確認: 0:57:14 時間前の 2019年09月13日 16時39分16秒 に実施しました。 依存関係が解決しました。 ================================================================================ Package Architecture Version Repository Size ================================================================================ インストール: python2-pyopengl x86_64 3.1.1a1-15.fc30 fedora 2.4 M 依存関係のインストール: openblas-threads x86_64 0.3.7-1.fc30 updates 4.8 M python2-numpy x86_64 1:1.16.4-2.fc30 updates 3.9 M python2-nose noarch 1.3.7-22.fc30 fedora 261 k
2020/07/31
PyOpenGL 3.x The Python OpenGL Binding
Python のインストール状態
PyOpenGL を使えるようにしたいと思い Python のインストール状態を調べてみた.
PyOpenGL は Python 2.7 が奨励となっている?
iwao@VB-Ubuntu:~$ python Command 'python' not found, but can be installed with: sudo apt install python3 # version 3.7.3-1, or sudo apt install python # version 2.7.16-1 sudo apt install python-minimal # version 2.7.16-1 You also have python3 installed, you can run 'python3' instead. iwao@VB-Ubuntu:~$ python3 Python 3.7.3 (default, Aug 20 2019, 17:04:43) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> iwao@VB-Ubuntu:~$
[Iwao@fedora ~]$ python bash: python: コマンドが見つかりませんでした... コマンド python' を提供するためにパッケージ 'python-unversioned-command' をインストールしますか? [N/y] n [Iwao@fedora ~]$ python3 Python 3.7.4 (default, Jul 9 2019, 16:32:37) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> [Iwao@fedora ~]$
pi@raspberrypi:~ $ python Python 2.7.13 (default, Sep 26 2018, 18:42:22) [GCC 6.3.0 20170516] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> pi@raspberrypi:~ $ python3 Python 3.5.3 (default, Sep 27 2018, 17:25:39) [GCC 6.3.0 20170516] on linux Type "help", "copyright", "credits" or "license" for more information. >>> pi@raspberrypi:~ $
Microsoft Windows [Version 10.0.18362.356] (c) 2019 Microsoft Corporation. All rights reserved. C:\Users\Iwao>py Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> ^Z C:\Users\Iwao>where py C:\Windows\py.exe C:\Users\Iwao>
g++ インクルードパスの設定
先日,Windows 環境に mount することで C++ の共通のコードを参照できる様になった.
今度は,これらを使用してコンパイルできるようにするための設定.
g++ file.cpp -I/mnt/_.src/__CPR_ などと指定すれば可能だが,これらのパスを 環境変数 に登録.
[Iwao@fedora first]$ g++ T_P_ini.cpp -I/mnt/_.src/__CPR_ -I/mnt/_.src/__Iwao -I/mnt/_.src/__Mlt_ -I/mnt/_.src/_gcc -Wall In file included from /mnt/_.src/__Iwao/delff_e.hxx:14, from /mnt/_.src/__CPR_/filefnc.hxx:13, from /mnt/_.src/__CPR_/i_Trace.hxx:16, from T_P_ini.cpp:5: /mnt/_.src/__Iwao/enumfile.hxx:33:56: 備考: #pragma message: EnumFile.hxx MessageBar No Support 33 | #pragma message ("EnumFile.hxx MessageBar No Support") | ^ [Iwao@fedora first]$ ./a.out Iwao Iwao [Iwao@fedora first]$
[Iwao@fedora first]$ export CPATH=/mnt/_.src/__CPR_:/mnt/_.src/__Iwao:/mnt/_.src/__Mlt_:/mnt/_.src/_gcc
[Iwao@fedora first]$ g++ T_P_ini.cpp -Wall
In file included from /mnt/_.src/__Iwao/delff_e.hxx:14,
from /mnt/_.src/__CPR_/filefnc.hxx:13,
from /mnt/_.src/__CPR_/i_Trace.hxx:16,
from T_P_ini.cpp:5:
/mnt/_.src/__Iwao/enumfile.hxx:33:56: 備考: #pragma message: EnumFile.hxx MessageBar No Support
33 | #pragma message ("EnumFile.hxx MessageBar No Support")
| ^
[Iwao@fedora first]$
export の部分を sh ファイルに
[Iwao@fedora first]$ cat set_z_inc.sh #!/bin/bash export CPATH=/mnt/_.src/__CPR_ export CPATH=$CPATH:/mnt/_.src/__Iwao export CPATH=$CPATH:/mnt/_.src/__Mlt_ export CPATH=$CPATH:/mnt/_.src/_gcc export CPATH=$CPATH:/mnt/_.src/Test [Iwao@fedora first]$ source ./set_z_inc.sh : コマンドが見つかりませんでした... [Iwao@fedora first]$
登録内容を見てみると何かおかしい.
[Iwao@fedora first]$ export declare -x BASH_ENV="/usr/share/Modules/init/bash" declare -x COLORTERM="truecolor" "/mnt/_.src/Testt_/mnt/_.src/__CPR_ declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus" ...
本当はもっと良い方法があるとは思うが,まだそこまで理解できていない.
ここまでで何とか思ったことまでは可能.
5 年前に GLUT を調べた 時のコードを,最近のコードで動作するように少し編集.
こちらは当時のコードそのまま.Pick07.cpp