2016-07-05 72 views
1

上週我開始學習Python。我是新手,沒有太多的編碼經驗。Pygame + Pyinstaller = ImportError:沒有名爲'pygame'的模塊

我創建使用pygame的(安裝在我的虛擬環境)的「太空入侵者」遊戲,它完美的作品時,我用Python2.7啓動它作爲

python myfile.py 

但是如果我啓動它作爲

python3 myfile.py 

我有一個回溯的錯誤

ImportError: No module named 'pygame' 

酷我可以對付它,甚至如果我不知道爲什麼。然而,當我使用pyinstaller myfile.py,將其轉換使用Python3

115 INFO: PyInstaller: 3.2 
115 INFO: Python: 3.5.0b4 
125 INFO: Platform: Darwin-15.5.0-x86_64-i386-64bit 
126 INFO: wrote mydir/myfile.py 

,因此同樣的錯誤,當我啓動應用程序的程序分爲單機可執行文件。 我正在使用Mac OSX El Captain。

問題是: 爲什麼它不適用於Python3? 如何在Python2.7中使用'pyinstaller'?

歡迎使用「人類」語言對包裹管理進行所有解釋。

P.S.我嘗試過cx_Freeze和bbFreeze,但是我總是會遇到以下錯誤。我有一個Mac OSX El隊長。

OSError: [Errno 1] Operation not permitted: '/mydir/MacOS.so' 
+0

不知道這是如何工作在Mac上,但問題是必須爲每個Python單獨安裝PyGame(和任何其他包)。您只爲Python 2安裝了它。您還需要爲Python 3安裝它。 – imallett

+0

您提到了'虛擬'環境。所有你需要的是激活'python2.7'的環境。請注意,El Capitan還配備了自己的Python 2.7。確保你不會對另一個感到困惑。 – alvits

+0

嗨,大家好,任何人都可以幫助我嗎? http://stackoverflow.com/questions/38244537/bug-pyinstaller-payload-veil-show-prompt-windows-while-i-run-it –

回答

1

Python庫是爲Python 2單獨安裝和Python 3看起來你只爲Python 2.定期pip install [package]安裝pygame只安裝在大多數設置了Python 2.0版本。一般來說,出於某種原因,一切都認爲Python 2是「默認」版本,包括其他主要的基於Unix的操作系統。

  1. 首先,激活您的virtualenv(source ./bin/activate在venv目錄中)。

  2. pip3 install hg+http://bitbucket.org/pygame/pygame(或者可能是pip-3.5)在你的virtualenv應該修復它。

  3. 如果它抱怨找不到hg,請以某種方式安裝Mercurial(例如,如果您有MacPorts,則爲sudo port install mercurial)。

  4. 試一試。運行python3,然後放import pygame

來源:

  • pygame的安裝從PIP:Unable to install Pygame using pip
  • 我使用的是OS X埃爾卡皮坦。我剛剛測試了我的答案,並且我可以打開Python 3解釋器和import pygame
+0

好的。我遵循你的指示。爲此,我創建了另一個虛擬環境,並將pygame安裝爲'pip3 install hg + bitbucket.org/pygame/pygame' ;.但是爲了使'pyinstaller'工作,我必須在運行之前使用'pip3 install pyinstaller'將它安裝在我的虛擬環境中。 –

+0

現在我有另一個小問題。當我在虛擬環境中運行可執行文件時,它可以正常工作,但在我運行本地環境的那一刻,出現以下錯誤:pygame.error:無法打開圖像/ ProEuro1.png。 'pygame'包含代碼中使用的圖像嗎?如果不是我如何管理它們? –

+0

我並不熟悉'pygame'或'pyinstaller',但是根據錯誤信息判斷,我不認爲'pygame'包含源代碼中的圖像。在你的工作目錄中必須有一個圖像目錄。它需要位於與打開Python文件的位置相同的目錄中。如果你能找到它,你可以嘗試移動它,但除此之外,你可能需要更多地環顧四周。 – sudo

相關問題