2011-04-17 18 views
2
私はUbuntuとのpythonを使用してい

2.6pygameのとcx_freeze:セグメンテーションフォールト

私はCXの凍結はすでに私のシステムにインストールされた(であることが、それは私のPythonのバージョンと互換性がありますかどうかを確認する方法はありますか?)

は、しかし、私は小さなpygameのスクリプトを持っている(別のモジュールと、いくつかのイメージをインポートする)と私はそれをコンパイルしたいです。

私はsetup.pyとしてこのファイルを使用:

#!/usr/bin/python 

from cx_Freeze import setup, Executable 

setup(
    name = 'Example', 
    version = '0.1', 
    description='hi', 
    executables = [Executable('/home/antonio/Python 26 save/opt/example.py')] 
    ) 

私は(端末を介して)結果の実行可能ファイルを、実行する場合、私はこのエラーを取得:

Fatal Python error: (pygame parachute) Segmentation Fault 
Aborted 

私は何をすべき?私が検索したが、私は非常に少数の例を発見し、私はGoogleでこのエラーはプログラムがCXが

+0

私はこの問題も抱えています。私は3つの画像にアクセスして、それからsegfaults、どのように変ですか。 – beary605

答えて

1

私は、Python 2.7を使用して同様の問題を取得してきました。私は自分のプログラムでこのセグメンテーション違反の2つの原因を見つけましたが、私はそれらの解決策の1つしか持っていません。

原因1.つまり呼び出し、パスなしでフォントを初期化:この場合

pygame.font.Font(None, font_size) 

valgrindがでアドレス0x0に無効な読み取りを報告??? in pygame.font.so

これは、Noneが有効なconst char *文字列であると仮定するNULLポインタに変換されるためです。

この問題に対する修正は常にフォントに有効なパスを供給することです。フォントで

原因2.レンダリングUnicode文字を

pygame.font.Font("data/DejaVuSans.ttf", 14).render(u'\u2654') 

valgrindのはlibpython2.7.so.1.0

でPyString_AsStringに無効な読み取りを報告し、私は私が持っていないと言ってごめんなさいこのための解決策。

PS: 私はcxfreezeの問題の別のユニコード関連(ただしゲーム関連ではない)原因を見つけました。 Pythonインタプリタで

print u'\u2654' 

王(チェスの駒)を印刷しますが、スクリプトはcxfreezeでコンパイルされたとき、私は次のようなエラー(ないセグメンテーションフォールト)を取得します:

UnicodeEncodeError: 'ascii' codec can't encode character u'\u2654' in position 0: ordinal not in range(128) 

また、あなたが呼び出す場合Pythonインタプリタにこのエラーが表示されます。

print str(u'\u2654') 

これは、文字列は常にASCII文字列と仮定しているcxfreezeを示しているようです。

+0

はうまくいきました!まあ、この時間の後、私はプロジェクトに関心を失ったが、それでもなお!ありがとう;-) – Ant

0

を凍結使用する前に、完全に動作していた、もちろん

psの結果表示されませんでしたあなたは、凍結時に設定されたすべての最適化オプションを持っていますかスクリプト?私はそれがこれを行う場合は、あまりにもわからないんだけど、それはそれは間違って参照する変数を変更することだということかもしれません。繰り返しますが、私はcx_freezeの専門家ではありませんが、私の解決策は更新することです。 cx_freezeの最新バージョンはありますか?

+0

はい私はcxフリーズの最新バージョンをdowboadしています。最適化オプションは設定していません.iは単純に 'python setup.py build'を実行します。 – Ant

0

エラー(http://www.google.com/search?hl=ja & q =致命的な20Python%20エラー%3A%20%28PGAME%20parachute%29%20Segmentation%20Fault)をGoogleでチェックし、同じエラーを報告している投稿はありますか?

など。

+0

はい、私はそうしました。任意の解決策..私の問題は、私がCxフリーズでプログラムをコンパイルするときから来たもので、前にではありません。 – Ant

0

私も同様のエラーが発生しており、解決策を見つけたと思います。 私は

pygame.font.SysFont(None,25) 

しかし、その代わりに、あなたのシステムのフォントを使用する必要があるなし引数を渡すのを使用しています。 私はWindowsマシンを使用しているので、私のシステムにあるフォントをnoneに置き換えました。あなたは、私は、WindowsのPC にプレインストールされたフォントが、それは動作します希望ですcomicsansmsなしを交換していない見ることができるように

pygame.font.SysFont("comicsansms",25) 

:だから私はそれを交換しました!

0

pygame.font.SysFont(FONT_NAME, FONT_SIZE)を使用してください。

+0

ようこそStackOverflow!コードのみの回答はややお勧めです。あなたは答えを編集してsegfaultの修正方法を説明できますか? – JETM

関連する問題