のほほんのおと

IT系、音楽、映画、旅行などなど。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【Python】EmEditorでPythonマクロを動かすまで

EmEditorというエディタではマクロに色々な言語を使えるようになっている。
基本はVBScript,JavaScriptだが、それ以外にもPython,Ruby,Perlなどが使える。

今回は今勉強中のPythonをマクロとして使えるようにしてみたので整理する。

【 手順概要 】
  1. Python(CPython)のインストール
  2. Python for Windows extensions(PyWin32)のインストール
  3. レジストリ設定
  4. 動作確認

【 1. Python(CPython)のインストール 】

すでに入っている環境なので詳細は略。

PythonのバージョンはPython2.7を前提にする。
3.0系でもいけるかは不明。

【 2. Python for Windows extensions(PyWin32)のインストール 】

以下のサイトを参考にした。
  http://www.byjohndoe.com/contents/9
  EmEditorでPythonScriptを動かす場合にエラーが出たときの対処法

PyWin32の配布サイトへ。
  http://sourceforge.net/projects/pywin32/
  Python for Windows extensions

ここからが分かりづらいのだが、以下のようにダウンロードページにたどり着く。
  ・リンク「Python for Windows extensions Web Site」へ。
  ・リンク「download pages」へ。
  ・リンク「download area 」へ。
  ・リンク「pywin32」へ。
  ・リンク「Build216」へ。この時点の最新のビルド。

ダウンロード一覧にある以下を落とす。
  pywin32-216.win32-py2.7.exe
  
  「-py2.7」とあるのが「Python2.7用」ということらしい。

実行し、インストール。

インストール時、Pythonとして私の環境ではCPyhtonとActivePythonの2つを検出された。
CPythonの以下を指定する。
  Python Directory  :C:\Software\Python27\
  Installation Directory  :C:\Software\Python27\Lib\site-packages\

以下のように入った。
  Copied pythoncom27.dll to C:\WINDOWS\system32\pythoncom27.dll
  Copied pythoncomloader27.dll to C:\WINDOWS\system32\pythoncomloader27.dll
  Copied pywintypes27.dll to C:\WINDOWS\system32\pywintypes27.dll
  Registered: Python.Interpreter
  Registered: Python.Dictionary
  Registered: Python
  -> Software\Python\PythonCore\2.7\Help[None]=None
  -> Software\Python\PythonCore\2.7\Help\Pythonwin Reference[None]='C:\\Software\\Python27\\Lib\\site-packages\\PyWin32.chm'
  Pythonwin has been registered in context menu
  Creating directory C:\Software\Python27\Lib\site-packages\win32com\gen_py
  Shortcut for Pythonwin created
  Shortcut to documentation created
  The pywin32 extensions were successfully installed.

【 3. レジストリ設定 】

以下のPyWin32にあるスクリプトを実行する。
  'PyWin32インストール先'\win32comext\axscript\client\pyscript.py

参考サイトによると実行方法は以下の2つ。
  1. エクスプローラでダブルクリック
  2. コマンドプロンプトで実行
    ただし、コマンドプロンプトは管理者権限で。

私は「2. コマンドプロンプトで実行」でやった。

以下のように実行。
  C:\>python -V
  Python 2.7.2
  
  C:\>python.exe C:\Software\Python27\Lib\site-packages\win32comext\axscript\client\pyscript.py
  Registered: Python
  
  C:\>

複数のPythonのバージョンを入れているときは「python -V」でどれが動くか確認しておくが吉。

【 4. 動作確認 】

以下の内容のファイル「pysample.py」を作成。
  #language = "Python"
  # encoding: cp932
  
  text = Window.document.selection.Text.encode('UTF-8')
  Window.alert( text )

EmEditor上で適当に文字列選択をしておいてからこのマクロを実行。

アラートダイアログが出て、中に選択しておいた文字列が表示されたら、動作確認OK。

【 トラブル事例 】

この作業時、幾つかあったトラブルを事例として整理。

「 未設定時エラー 」

CPythonは元々入っていたが、PyWin32は入っていなかった。
その状態でPythonのマクロを実行すると出たエラーが以下。
  ---------------------------
  EmEditor
  ---------------------------
  Python
  指定された言語はシステムに登録されていません。
  ---------------------------
  OK
  ---------------------------

「 ActivePythonではダメ? 」

以下のサイトに代表されるように、ActivePythonを使う、という説明がネットには多い。
  http://emeditor.web.fc2.com/EmEditor_Macro_ActiveScript.html
  EmEditorのマクロを様々なActiveScriptで書いてみる

が、結論から言うとダメで、結局CPythonを使った。

ダメだった時にPythonマクロを実行すると出た2つのエラーが以下。
  ---------------------------
  Microsoft Visual C++ Runtime Library
  ---------------------------
  Runtime Error!
  
  Program: C:\Software\EmEditor\EMEDITOR.EXE
  
  R6034
  
  An application has made an attempt to load the C runtime library incorrectly.
  Please contact the application's support team for more information.
  
  ---------------------------
  OK
  ---------------------------
  
  
  ---------------------------
  EmEditor
  ---------------------------
  ダイナミック リンク ライブラリ (DLL) 初期化ルーチンの実行に失敗しました。
  
  ---------------------------
  OK
  ---------------------------

私と同じようにトラブり、CPythonを使うことで解決したという話しが以下。
ここを参考にして私も軌道修正した。
  http://www.byjohndoe.com/contents/9
  EmEditorでPythonScriptを動かす場合にエラーが出たときの対処法

「 ActivePythonアンインストールでPyWin32壊れた? 」

ActivePythonはやめて、CPythonを使うことにした。
で、不要なのでActivePythonをアンインストールした。
するとどうやらPyWin32の環境を壊すかなんかしたみたい。

それまで動いていたPyWin32そのものが動かないようになっていた。
  スタート > プログラム > Python2.7 > PythonWin

以下のエラーが出る。
  ---------------------------
  Python for Win32
  ---------------------------
  Still can't get my hands on win32ui
  ---------------------------
  OK
  ---------------------------

その状態で「 3. レジストリ設定 」を実行して出たエラーが以下。
  C:\>python.exe -V
  Python 2.7.2
  
  C:\>python.exe C:\Software\Python27\Lib\site-packages\win32comext\axscript\client\pyscript.py
  Traceback (most recent call last):
   File "C:\Software\Python27\Lib\site-packages\win32comext\axscript\client\pyscript.py", line 11, in
   import win32com
   File "C:\Software\Python27\lib\site-packages\win32com\__init__.py", line 5, in
   import win32api, sys, os
  ImportError: DLL load failed: 指定されたモジュールが見つかりません。
  
  C:\>

再度PyWin32をインストールすることで上記2つの現象は収まった。

「 32bit版か64bit版か 」

Python,PyWin,EmEditorの全てを32bit版かあるいは64bit版に統一しておかないと具合が悪かった。
ここまでの説明は32bit版での話し。
他の環境で「Python,PyWinは32bit」、「EmEditorだけ64bit」でやったところ、トラブった。
Pythonマクロを実行すると、以下のエラーダイアログが出る。
「クラスが登録されていません」

【 参考情報 】

「 EmEditorマクロのオンラインヘルプ 」
http://jp.emeditor.com/help/macro/index.htm
EmEditor ホーム - EmEditor ヘルプ
マクロ リファレンス

「 色々な言語でマクロを動かす情報 」

http://emeditor.web.fc2.com/EmEditor_Macro_ActiveScript.html
EmEditorのマクロを様々なActiveScriptで書いてみる

ただし、少なくともPythonに関してはダメだった。
ActivePythonではダメ。

「 Python for Windows extensions(PyWin32) 」
http://sourceforge.net/projects/pywin32/
Python for Windows extensions

以上
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

【Python】PythonとライブラリmechanizeでWEBスパイダリング/スクレイピング

PythonでWEBスパイダリング/スクレイピング用のライブラリ「mechanize」というものをインストールし、動作確認するまでを整理してみます。

スパイダリング/スクレイピングというのは要するにWEBサイトをうろつき回り、WEBページ中の情報で必要なところを切り出してくる、といったものです。
WEB APIが用意されてないようなサイトからプログラムでデータを得る時は、WEBページのHTMLソースを解析し、必要な文字列等を抽出する、というわけです。

「 環境 」

ここで今回やった時の環境について。

Windows7 64bit
Python 2.7

Pythonのバージョンには注意です。
最初、3.X系でやろうとしたのですがうまく行かず、結局2.7を入れました。

「 手順概要 」

これからやる作業は以下です。
  1. EasyInstallのインストール
  2. Mechanizeのインストール
  3. 実験
「 EasyInstallのインストール 」

MechanizeのインストールにEasyInstallを使うのですが、入ってなかったので。

以下へ。

http://peak.telecommunity.com/dist/


以下を落とします。
ez_setup.py

ez_setup.pyをPythonインストールディレクトリ下にコピーします。
以下、例です。
C:\Software\Python27\
ez_setup.py

あとはez_setup.pyを実行するだけです。
以下、実行例。
C:\Software\Python27>python ez_setup.py
Downloading http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg
Processing setuptools-0.6c11-py2.7.egg
Copying setuptools-0.6c11-py2.7.egg to c:\software\python27\lib\site-packages
Adding setuptools 0.6c11 to easy-install.pth file
Installing easy_install-script.py script to C:\Software\Python27\Scripts
Installing easy_install.exe script to C:\Software\Python27\Scripts
Installing easy_install.exe.manifest script to C:\Software\Python27\Scripts
Installing easy_install-2.7-script.py script to C:\Software\Python27\Scripts
Installing easy_install-2.7.exe script to C:\Software\Python27\Scripts
Installing easy_install-2.7.exe.manifest script to C:\Software\Python27\Scripts

Installed c:\software\python27\lib\site-packages\setuptools-0.6c11-py2.7.egg
Processing dependencies for setuptools==0.6c11
Finished processing dependencies for setuptools==0.6c11

C:\Software\Python27>

以下のようにインストールされていることが確認できます。
C:\Software\Python27>dir scripts
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 940C-02E6 です

 C:\Software\Python27\scripts のディレクトリ

2011/11/17  23:53    <DIR>          .
2011/11/17  23:53    <DIR>          ..
2011/11/17  23:53               316 easy_install-2.7-script.py
2011/11/17  23:53             7,168 easy_install-2.7.exe
2011/11/17  23:53               531 easy_install-2.7.exe.manifest
2011/11/17  23:53               308 easy_install-script.py
2011/11/17  23:53             7,168 easy_install.exe
2011/11/17  23:53               527 easy_install.exe.manifest
               6 個のファイル              16,018 バイト
               2 個のディレクトリ  120,230,211,584 バイトの空き領域

C:\Software\Python27>

「 Mechanizeのインストール 」

EasyInstallのあるディレクトリ「Scripts」まで移動してから以下でインストールします。
easy_install mechanize

以下、実行例。
C:\Software\Python27\Scripts>easy_install mechanize
Searching for mechanize
Reading http://pypi.python.org/simple/mechanize/
Reading http://wwwsearch.sourceforge.net/mechanize/
Best match: mechanize 0.2.5
Downloading http://pypi.python.org/packages/source/m/mechanize/mechanize-0.2.5.tar.gz
Processing mechanize-0.2.5.tar.gz
Running mechanize-0.2.5\setup.py -q bdist_egg --dist-dir c:\users\yosi\appdata\local\temp\easy_install-3dsj4w\mechanize-0.2.5\egg-dist-tmp-nt82uk
warning: no files found matching 'output' under directory 'test\functional_tests_golden'
Adding mechanize 0.2.5 to easy-install.pth file

Installed c:\software\python27\lib\site-packages\mechanize-0.2.5-py2.7.egg
Processing dependencies for mechanize
Finished processing dependencies for mechanize

C:\Software\Python27\Scripts>


以下のようにmechanizeのライブラリが入ったことが確認できます。

C:\Software\Python27\Lib\site-packages\
mechanize-0.2.5-py2.7.egg

「 実験 」

ここではGoogleへのアクセスを試してみます。
Googleのトップぺージにアクセスし、タイトル表示とページ中のリンクを全て表示しています。
Pythonのコマンドラインで対話的に実行しました。

Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> from mechanize import Browser
>>> br = Browser()
>>> br.open('http://www.google.com/')
<response_seek_wrapper at 0x2a50580 whose wrapped object = <closeable_response at 0x2a50288 whose fp = <socket._fileobject object at 0x02A47AF0>>>
>>> br.title()
'Google'
>>> for i in br.links():
...     print i
...
Link(base_url='http://www.google.co.jp/', url='http://www.google.co.jp/imghp?hl=ja&tab=wi', text='\x89\xe6\x91\x9c', tag='a', attrs=[('class', 'gb1'), ('href','http://www.google.co.jp/imghp?hl=ja&tab=wi')])
Link(base_url='http://www.google.co.jp/', url='http://video.google.co.jp/?hl=ja&tab=wv', text='\x93\xae\x89\xe6', tag='a', attrs=[('class', 'gb1'), ('href', 'http://video.google.co.jp/?hl=ja&tab=wv')])
Link(base_url='http://www.google.co.jp/', url='http://maps.google.co.jp/maps?hl=ja&tab=wl', text='\x92n\x90}', tag='a', attrs=[('class', 'gb1'), ('href', 'http://maps.google.co.jp/maps?hl=ja&tab=wl')])
Link(base_url='http://www.google.co.jp/', url='http://news.google.co.jp/nwshp?hl=ja&tab=wn', text='\x83j\x83\x85\x81[\x83X', tag='a', attrs=[('class', 'gb1'), ('href', 'http://news.google.co.jp/nwshp?hl=ja&tab=wn')])
Link(base_url='http://www.google.co.jp/', url='http://www.google.co.jp/prdhp?hl=ja&tab=wf', text='\x83V\x83\x87\x83b\x83s\x83\x93\x83O', tag='a', attrs=[('class', 'gb1'), ('href', 'http://www.google.co.jp/prdhp?hl=ja&tab=wf')])
Link(base_url='http://www.google.co.jp/', url='https://mail.google.com/mail/?tab=wm', text='Gmail', tag='a', attrs=[('class', 'gb1'), ('href', 'https://mail.google.com/mail/?tab=wm')])
Link(base_url='http://www.google.co.jp/', url='http://www.google.co.jp/intl/ja/options/', text='\x82\xe0\x82\xc1\x82\xc6\x8c\xa9\x82\xe9 &raquo;', tag='a', attrs=[('class', 'gb1'), ('style', 'text-decoration:none'), ('href', 'http://www.google.co.jp/intl/ja/options/')])
Link(base_url='http://www.google.co.jp/', url='/url?sa=p&pref=ig&pval=3&q=http://www.google.co.jp/ig%3Fhl%3Dja%26source%3Diglk&usg=AFQjCNEmQuNg1ivauCid9lXp5yYSx6AHXw', text='iGoogle', tag='a', attrs=[('href', '/url?sa=p&pref=ig&pval=3&q=http://www.google.co.jp/ig%3Fhl%3Dja%26source%3Diglk&usg=AFQjCNEmQuNg1ivauCid9lXp5yYSx6AHXw'), ('class', 'gb4')])
Link(base_url='http://www.google.co.jp/', url='http://www.google.com/history/optout?hl=ja', text='\x83E\x83F\x83u\x97\x9a\x97\xf0', tag='a', attrs=[('href', 'http://www.google.com/history/optout?hl=ja'), ('class', 'gb4')])
Link(base_url='http://www.google.co.jp/', url='/preferences?hl=ja', text='\x90\xdd\x92\xe8', tag='a', attrs=[('href', '/preferences?hl=ja'), ('class', 'gb4')])
Link(base_url='http://www.google.co.jp/', url='https://accounts.google.com/ServiceLogin?hl=ja&continue=http://www.google.co.jp/', text='\x83\x8d\x83O\x83C\x83\x93', tag='a', attrs=[('id', 'gb_70'), ('href', 'https://accounts.google.com/ServiceLogin?hl=ja&continue=http://www.google.co.jp/'), ('class', 'gb4')])
Link(base_url='http://www.google.co.jp/', url='/advanced_search?hl=ja', text='\x8c\x9f\x8d\xf5\x83I\x83v\x83V\x83\x87\x83\x93', tag='a', attrs=[('href', '/advanced_search?hl=ja')])
Link(base_url='http://www.google.co.jp/', url='/language_tools?hl=ja', text='\x8c\xbe\x8c\xea\x83c\x81[\x83\x8b', tag='a', attrs=[('href', '/language_tools?hl=ja')])
Link(base_url='http://www.google.co.jp/', url='/intl/ja/ads/', text='\x8dL\x8d\x90\x8cf\x8d\xda', tag='a', attrs=[('href', '/intl/ja/ads/')])
Link(base_url='http://www.google.co.jp/', url='http://www.google.co.jp/intl/ja/services/', text='\x83r\x83W\x83l\x83X \x83\\\x83\x8a\x83\x85\x81[\x83V\x83\x87\x83\x93', tag='a', attrs=[('href', 'http://www.google.co.jp/intl/ja/services/')])
Link(base_url='http://www.google.co.jp/', url='/intl/ja/about.html', text='Google \x82\xc9\x82\xc2\x82\xa2\x82\xc4', tag='a', attrs=[('href', '/intl/ja/about.html')])
Link(base_url='http://www.google.co.jp/', url='http://www.google.com/ncr', text='Google.com in English', tag='a', attrs=[('href', 'http://www.google.com/ncr'),('class', 'gl nobr')])
Link(base_url='http://www.google.co.jp/', url='/intl/ja/privacy.html', text='\x83v\x83\x89\x83C\x83o\x83V\x81[', tag='a', attrs=[('href', '/intl/ja/privacy.html')])
>>>

おしまい








テーマ:プログラミング - ジャンル:コンピュータ

【Python】スクリプトをPyInstallerでフローズンバイナリ化(EXEファイル化)

PythonスクリプトをWindowsのEXEファイル形式にする方法を調べてみたので整理してみました。

Python使いじゃない人に自作スクリプトを使ってもらうにはどうしてもこういうのが必要になりますね。
面倒臭いなぁと思っていたのですが、やってみたらそれほどでもありませんでした。
先人達に多謝多謝。

ちなみにこういうのを「フローズンバイナリ」と言うらしいですね。
でも一般的じゃない気がするので「EXE化」としておきます。

「 方法選定 」

EXE化の方法としては幾つか見つかりました。
  • py2exe
  • cx_Freeze
  • PyInstaller
py2exeが一番情報がありましたが、今回はPyInstallerを使うことにしました。
要件として「EXEファイル1つにしたい」というのがあったのですが、py2exeではできないようだからです。

「 環境 」

ここで今回やった時の環境について。
Windows7 64bit
Python 2.7
Pythonのバージョンには注意です。
最初、3.X系でやろうとしたのですがうまく行かず、結局2.7を入れました。

今回EXE化するのは自作の以下のスクリプトです。
CybozeMailDL.py
グループウェア「サイボウズ」のメールをダウンロードするツールです。これについてはまた別で。

「 PyInstallerインストール 」

以下へ。
www.pyinstaller.org/

以下のstable release版を落とす。
pyinstaller-1.5.1.zip

解凍してできたフォルダを以下へ移動。
C:\Software\pyinstaller-1.5.1

本当はこのPyInstallerへのPATHを通した方がいいのかもしれませんが、やりませんでした。
Pythonにも通してない環境です。

「 手順概要 」

これからやる作業は以下です。
  1. 対象スクリプト準備
      対象スクリプトはPyInstallerのインストールフォルダ下に置きます。
  2. 初期コンフィグ
      PyInstallerをインストール後、1回だけやる作業です。
  3. specファイル作成
  4. EXE化
  5. 確認
「 作業 」

1. 対象スクリプト準備

対象スクリプトはPyInstallerのインストールフォルダ下に置きます。
C:\Software\pyinstaller-1.5.1\
CybozeMailDL.py

2. 初期コンフィグ
PyInstallerをインストール後、1回だけやる作業です。
C:\Software\pyinstaller-1.5.1>C:\Software\Python27\python.exe Configure.py
I: computing EXE_dependencies
I: Finding TCL/TK...
W: library coredll.dll required via ctypes not found
I: Analyzing C:\Software\Python27\DLLs\_tkinter.pyd
    :中略
I: could not find TCL/TK
I: testing for Zlib...
I: ... Zlib available
I: Testing for ability to set icons, version resources...
I: ... resource update available
I: Testing for Unicode support...
I: ... Unicode available
I: testing for UPX...
I: ...UPX unavailable
I: computing PYZ dependencies...
I: done generating config.dat

C:\Software\pyinstaller-1.5.1>

以下のようにWarningっぽいのが一つ出てしまいましたが、エラーではないみたいなのでほっときます。
W: library coredll.dll required via ctypes not found

なお、このとき私の環境でははじめ以下のエラーになりました。
C:\Software\pyinstaller-1.5.1>C:\Software\Python27\python.exe Configure.py
ERROR: Python 2.6+ on Windows support needs pywin32
Please install http://sourceforge.net/projects/pywin32/

C:\Software\pyinstaller-1.5.1>

ということで、pywin32を以下から入手し、インストールしてあります。
sourceforge.net/projects/pywin32/
Python for Windows extensions

3. specファイル作成


specファイルを作成します。
このときオプション-Fをつけることで、1つのEXEファイルにすることができます。

C:\Software\pyinstaller-1.5.1>C:\Software\Python27\python.exe Makespec.py -F CybozeMailDL.py
wrote C:\Software\pyinstaller-1.5.1\CybozeMailDL\CybozeMailDL.spec
now run Build.py to build the executable

C:\Software\pyinstaller-1.5.1>

specファイルは以下のよう にCybozeMailDL というフォルダが作られ、その下にできています。
C:\Software\pyinstaller-1.5.1>dir .\CybozeMailDL\
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 940C-02E6 です

 C:\Software\pyinstaller-1.5.1\CybozeMailDL のディレクトリ

2011/11/23  16:56    <DIR>          .
2011/11/23  16:56    <DIR>          ..
2011/11/23  16:56               492 CybozeMailDL.spec
               1 個のファイル                 492 バイト
               2 個のディレクトリ  120,157,540,352 バイトの空き領域

C:\Software\pyinstaller-1.5.1>

4. EXE化

いよいよEXEファイル化です。

C:\Software\pyinstaller-1.5.1>C:\Software\Python27\python.exe  Build.py .\CybozeMailDL\CybozeMailDL.spec
I: Dependent assemblies of C:\Software\Python27\python.exe:
I: x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none
checking Analysis
building Analysis because outAnalysis0.toc non existent
running Analysis outAnalysis0.toc
Analyzing: support\_mountzlib.py
Analyzing: support\useUnicode.py
Analyzing: CybozeMailDL.py
I: Analyzing C:\Software\Python27\python.exe
I: Dependent assemblies of C:\Software\Python27\python.exe:
    :中略
I: Analyzing C:\Software\Python27\DLLs\sqlite3.dll
I: Skipping KERNEL32.dll dependency of sqlite3.dll
Warnings written to .\CybozeMailDL\warnCybozeMailDL.txt
checking PYZ
rebuilding outPYZ1.toc because outPYZ1.pyz is missing
building PYZ outPYZ1.toc
checking PKG
rebuilding outPKG3.toc because outPKG3.pkg is missing
building PKG outPKG3.pkg
checking EXE
rebuilding outEXE2.toc because CybozeMailDL.exe missing
building EXE from outEXE2.toc
Appending archive to EXE .\CybozeMailDL\dist\CybozeMailDL.exe

C:\Software\pyinstaller-1.5.1>

5. 確認

以下のようにCybozeMailDLフォルダの下に更にdistフォルダが掘られ、EXEファイルができていることが確認できます。
ちなみにspecファイルを作る際に-Fオプションをつけなかった場合はここにEXE以外に色々なファイル、フォルダがぞろぞろとできています。
その場合、distフォルダ丸ごと配布、という形になるようです。

C:\Software\pyinstaller-1.5.1>dir C:\Software\pyinstaller-1.5.1\CybozeMailDL\dist\
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 940C-02E6 です

 C:\Software\pyinstaller-1.5.1\CybozeMailDL\dist のディレクトリ

2011/11/23  16:58    <DIR>          .
2011/11/23  16:58    <DIR>          ..
2011/11/23  16:58         4,362,585 CybozeMailDL.exe
               1 個のファイル           4,362,585 バイト
               2 個のディレクトリ  120,144,654,336 バイトの空き領域

C:\Software\pyinstaller-1.5.1>

あとはこのできたEXEをどこか全く関係ないフォルダや別PCにコピーして試してみましょう。
こんだけです。

テーマ:プログラミング - ジャンル:コンピュータ

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。