オープンデータとプログラミング

Programming

PyQueryを使ったアプリをpy2exeしたときに動かなかったときのメモ

python

PyQueryを使ったアプリをpy2exeしたときに、実行時に「ImportError: No module named cssselect」がでることがあります。

ちょっとハマぅたのでメモを残しておきます。

Traceback (most recent call last):
  File "XXXXXXXXXXXXXX.py", line XX, in <module>
  File "zipextimporter.pyo", line 82, in load_module
  File "f2.pyo", line 4, in <module>
  File "zipextimporter.pyo", line 82, in load_module
  File "pyquery\__init__.pyo", line 11, in <module>
  File "zipextimporter.pyo", line 82, in load_module
  File "pyquery\pyquery.pyo", line 6, in <module>
  File "zipextimporter.pyo", line 82, in load_module
  File "pyquery\cssselectpatch.pyo", line 6, in <module>
ImportError: No module named cssselect

この問題の解決手順は次のとおりです。

githubからcssselectのZIPしてきて解凍します。

https://github.com/SimonSapin/cssselect

解凍したファイルの中に次のようなフォルダ・ファイルがありますので、
これをC:\Python27\Lib\site-packages配下に入れるとエラーがでなくなりました。

cssselect/__init__.py
cssselect/parser.py
cssselect/tests.py
cssselect/xpath.py

いかがでしたか?

py2exeのエラーには悩まされますね。

初心者がAndroid Studio1.0でつまづいたこと(3):エミュレータが起動できない

無常にもまたエラー・・・

emulator: ERROR: x86 emulation currently requires hardware acceleration!
Please ensure Intel HAXM is properly installed and usable.
CPU acceleration status: HAX kernel module is not installed!

どうやらIntel HAXMがインストールされていないということらしい。

以下のコマンドを叩くとインストールできるらしいので、やってみる。

C:\Users\ユーザ名\AppData\Local\Android\sdk\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe

すると・・・・

HAXMのエラー画面

またしてもエラー。

で、いろいろと調べて回ると結局のところ、VT-xというIntelの仮想化支援機能がCPUに付いていないとだめらしい。

ワタクシのPCのCPU「Intel® Pentium® Processor B940」には、どうやらその機能がないらしい。

VT-xの有無は、インテルのサイトで確認できます。

http://ark.intel.com/ja/products/55626/Intel-Pentium-Processor-B940-2M-Cache-2_00-GHz

VT-xがないPCの場合どうすりゃよいのか?と途方に暮れました。

新しいPCを買わなければいけないのかという考えが頭をよぎる・・・

でも、VT-xが付いていないCPUを搭載したPCだって沢山あるわけだし、何か手だてはあるはずだと考えて調べまくりました。

ありましたよ、ありました!

armeabi

これですよ、これ!

armeabiとはなんぞや、ということですがARM社が開発したOSをエミュレートするものらしい。ウィキペディアに詳しい説明がありました。

Application Binary Interface(ABI) – ウィキペディア

では早速やってみます。

ツールバーから、「AVD Manager」のボタンをクリックします。

すると「AVD Manager」が開きます。

インストール直後の画面では次のようになっています。

AVDマネージャ

ここで「CPU/ABI」と書かれた項目に注目!

「x86」と書かれていますよね。これがダメ。

そこでコイツを変更します。

右の方にある鉛筆マークをクリックします。

すると次のような画面になりますので、armeabi-xxxを選択してあげればOK。

ダウンロードが必要な場合は、左のほうにあるdownloadリンクをクリックします。

システムイメージ

これでエミュレータが起動可能になりました!

初心者がAndroid Studio1.0でつまづいたこと(2)⇒PANIC: Could not find Nexus_5_API_21_x86.ini file in $ANDROID_AVD_HOME nor in $HOME/.android/avd

デモアプリを実行しようとすると、次のエラーメッセージが出力される。

"C:\Users\xxxxxxxxxxxxx\Music\AppData\Local\Android\Sdk\tools\emulator.exe" -netdelay none -netspeed full -avd Nexus_5_API_21_x86
PANIC: Could not find Nexus_5_API_21_x86.ini file in $ANDROID_AVD_HOME nor in $HOME/.android/avd

どうも“Nexus_5_API_21_x86.ini”がないと言っているようだ。

Googleで検索するも有効な情報なし。

しばらくはまった。

でも、よくよくメッセージを見ると、”C:\Users\xxxxxxxxxxxxx\Music\・・・”とある。

この”Music”って見覚えがあるぞ。

インストールのときに、デフォルトで表示されたパスだ。

音楽フォルダ”Music”にインストールするなんて「おかしい」と思ったので、思いっきり消してしまったのだ。

それがまさか影響するとは・・・

実際に、C:\Users\xxxxxxxxxxxx\Music\.android\avdにいってみると、見つからないといっている“Nexus_5_API_21_x86.ini”があるではないか・・・

この後、ディレクトリ類をきれいに削除して再インストールを実施・・・・

しかし解決せず。

初期インストールのとき、聞いてきたMusicを含むフォルダについては何も聞いてこなかった。

どこかに保持していたのだろう。

結局は、

環境変数は$ANDROID_AVD_HOMEの設定を以下のようにしたら解決 (^^;

ANDROID_AVD_HOME=C:\Users\xxxxxxxxxxxx\Music\.android\avd

初心者がAndroid Studio1.0.1でつまづいたこと(1) 

サンプルをビルドすると[Gradle Build]のタブに次のメッセージが・・・

Error:FAILURE: Build failed with an exception.

* What went wrong:
Task '' not found in root project 'ActionBarCompat-Basic'.

* Try:
Run gradle tasks to get a list of available tasks. Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

[Gradle Sync]のタブにはこんなメッセージが出現

Error:failed to find Build Tools revision 21.1.1
Install Build Tools 21.1.1 and sync project

android_error_trim

画面のリンクをクリックしてBuild Toolsをインストールしたら解決しましたが、Android Studioはサンプルプログラムのビルドからうまくいかないことが多い!