続き
結局stretchを新しく入れた。 自力でなんとかしようとしてかえって遠回りになるのがよくある
Raspberry pi 2 B+ & Python3 & Selenium (Chromium)
raspberyy pi 2 B+ python3 selenium chromium でスクレイピングをしたくなった。
しかし、jessieなので stretchにする。
jessieのままやってもUbuntuのchromium-chromedriver (Webdriver) のバージョンとchromiumが合わない(この時点で四苦八苦)
stretch にはchromedriverパッケージが追加されている
sudo apt-get update sudo apt-get upgrade #最新にしておく
sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list.d/raspi.list
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo reboot
・・・できない。
sudo apt-get upgrade
.........
dpkg: 警告: サブプロセス 古い pre-removal スクリプト はエラー終了ステータス 127 を返しました
dpkg: 代わりに新規パッケージからスクリプトを実行してみます ...
/var/lib/dpkg/tmp.ci/prerm: 6: /var/lib/dpkg/tmp.ci/prerm: pyclean: not found
dpkg: アーカイブ /var/cache/apt/archives/python-openssl_0.14-1_all.deb の処理中にエラーが発生しました (--unpack):
サブプロセス 新しい pre-removal スクリプト はエラー終了ステータス 127 を返しました
/var/lib/dpkg/info/python-openssl.postinst: 6: /var/lib/dpkg/info/python-openssl.postinst: pycompile: not found
dpkg: error while cleaning up:
サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 127 を返しました
処理中にエラーが発生しました:
/var/cache/apt/archives/python-openssl_0.14-1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
とのこと
今は、
sudo dpkg --audit
で、出てきた 展開されたけど設定されていないパッケージを
sudo dpkg --configure [パッケージ名]
でなんとかしている。 さらに上のコマンドで、"エラー終了ステータス 127"を返されたら、出てきたパス( 多分 /var/libdpkg/info/[パッケージ].postinst )
sudo rm -r [パス] で もう一回 configure すれば解決した
Raspberry pi 2 B+ pipのバージョンが低い
raspberyy pi を久々に起動したが /usr/ (?) の中に 律儀に
python/ とか python2/ とか python3/ とか(これは良い
なので、 pip --version とやっても変なのが出てくる。
sudo rm -r [python3以外のpip]
ってやったら良い感じになった version 上げて終わり
ListViewの項目選択に応じたDialogを表示
自分用メモ
ゴリゴリ・ゴリラ押しソースコード
スマートな書き方ができなかったので、どなたか教えてください。
マジでコード書くより調べる時間が長い
///// Main.java DialogFragment dialogFragment = new CustomDialog(); ///// final String[] strings = {"abc","cde","edf"}; final ArrayAdapter<String> adapter = new ArrayAdapter<>(mContext, android.R.layout.simple_list_item_1, strings); listView.setAdapter(adapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Bundle arg = new Bundle(); //////////// Bundle is used switch (position){ case 0: arg.putInt("num",0); dialogFragment.setArguments(arg); ////////// setArguments で Bundleに入れた値を渡す。 break; case 1: arg.putInt("num",1); dialogFragment.setArguments(arg); break; case 2: arg.putInt("num",2); dialogFragment.setArguments(arg); break; } dialogFragment.show(getFragmentManager(), "test"); }
///// CustomDialog public class CustomDialog extends DialogFragment { ////省略 public Dialog onCreateDialog(Bundle savedInstanceState) { int number = 0; try { number = getArguments().getInt("num"); ///setArgumentsしたのを受け取るやつらしい そりゃそうだね。 } catch (NullPointerException ex) { Log.e("JJI", ex.toString()); } if (number == 1) { return new AlertDialog.Builder(getActivity()) .setTitle("UNKO") .setMessage("UNKO") .setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { mListener.onDialogPositiveClick(D_Fragment.this); } }) .setNeutralButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .create(); ////////////// 省略 if(number == 2 )とか if(number == 3)もあるよ }
こんな感じ?
最初の記事
テスト投稿も兼ねて書いてみようと思います。
このblogは主に日常生活や、学んだことについて書きます。 できるだけ積極的な投稿を心掛けていきたいね (恐らくこの気持ちは最初だけ...) 今日は特になにもなかったのでこれで終わり。