IronPython2でexeを作成と、つまづいた点
IronPython3がまだ微妙に感じたのでIronPython2を使ってみることにした。
LIB\〜.pyを含められない(?)ため
TH-wbRadStudio で php7.1をexe化 (python3.6も可) - Qiitaの方が使いやすい気がする。
Download
https://github.com/IronLanguages/main/releases
から ipy-2.7.7
ではなくipy-2.7.6.3
をダウンロード。
今回はmsiではなく、zipの方をダウンロードした。
.exe作成テスト (.dllも作成されます。)
print 'hello'
ipy "Tools\Scripts\pyc.py" /target:exe /main:a.py a.py
ipy "Tools\Scripts\pyc.py" /standalone /target:exe /main:a.py a.py
IronPython2直下にあるdll群も一緒に置くとa.exe
が動きました。
(メモ) /standalone オプションを追加した時の出力
失敗例
ipy.exe がある箇所以外で実行しようとすると以下エラーになった。
a.dllも一緒に配布することが必要でした。
最新の ipy-2.7.7 だとpycでエラーとなった。
ipy.exe" "C:\IronPython 2.7\Tools\Scripts\pyc.py" /target:exe /main:Test1.py
..(略)
Compiling...
Traceback (most recent call last):
File "C:\IronPython 2.7\Tools\Scripts\pyc.py", line 332, in <module>
File "C:\IronPython 2.7\Tools\Scripts\pyc.py", line 327, in Main
File "C:\IronPython 2.7\Tools\Scripts\pyc.py", line 181, in GenerateExe
SystemError: あいまいな一致が見つかりました。
Traceback (most recent call last):
File "pyc.py", line 332, in <module>
File "pyc.py", line 327, in Main
File "pyc.py", line 181, in GenerateExe
SystemError: Ambiguous match found.
文字コードに難あり
IronPythonでShift JISのテキストファイルを取り扱う場合の注意点 | OPC Diaryによると
IronPythonではテキストデータはあらかじめutf-8にしておく方が無難。
どうしてもshift_jisを使うならコーデックとしてmbcsを指定する。
import sys
sys.path.append(r'..\LIB')
func set_encoding():
import sys
import codecs
charset = 'mbcs'
sys.stdin = codecs.getreader(charset)(sys.stdin)
sys.stdout = codecs.getwriter(charset)(sys.stdout)
set_encoding()
Author And Source
この問題について(IronPython2でexeを作成と、つまづいた点), 我々は、より多くの情報をここで見つけました https://qiita.com/tukiyo3/items/780fc85c9e5a8aa9ef4e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .