2016-11-23 23 views
3

私はpython 3.4を使用しています。私は問題なくPythonスクリプトを実行することができます。 しかしフリーズされたpythonスクリプトを実行しているうちに、エラーが発生しました。 cx_freezeでスクリプトを正常にフリーズすることもできます。ImportError:cx_freezeでフリーズしたアプリケーションを実行中に 'queue'という名前のモジュールがありません

C:\Program Files (x86)\utils>utils.exe 
Traceback (most recent call last): 
    File "C:\Python34\lib\site-packages\requests\packages\__init__.py", line 27, i 
n <module> 
    from . import urllib3 
    File "C:\Python34\lib\site-packages\requests\packages\urllib3\__init__.py", line 8, in <module> 
    from .connectionpool import (
    File "C:\Python34\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 28, in <module> 
    from .packages.six.moves.queue import LifoQueue, Empty, Full 
    File "C:\Python34\lib\site-packages\requests\packages\urllib3\packages\six.py", line 203, in load_module 
    mod = mod._resolve() 
    File "C:\Python34\lib\site-packages\requests\packages\urllib3\packages\six.py", line 115, in _resolve 
    return _import_module(self.mod) 
    File "C:\Python34\lib\site-packages\requests\packages\urllib3\packages\six.py", line 82, in _import_module 
    __import__(name) 
ImportError: No module named 'queue' 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "C:\Python34\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 12, in <module> 
    __import__(name + "__init__") 
    File "C:\Python34\lib\site-packages\cx_Freeze\initscripts\Console.py", line 21, in <module> 
    scriptModule = __import__(moduleName) 
    File "utils.py", line 3, in <module> 
    File "C:\Python34\lib\site-packages\requests\__init__.py", line 63, in <module> 
    from . import utils 
    File "C:\Python34\lib\site-packages\requests\utils.py", line 24, in <module> 
    from ._internal_utils import to_native_string 
    File "C:\Python34\lib\site-packages\requests\_internal_utils.py", line 11, in <module> 
    from .compat import is_py2, builtin_str 
    File "C:\Python34\lib\site-packages\requests\compat.py", line 11, in <module> 
    from .packages import chardet 
    File "C:\Python34\lib\site-packages\requests\packages\__init__.py", line 29, in <module> 
    import urllib3 
    File "C:\Python34\lib\site-packages\urllib3\__init__.py", line 8, in <module> 
    from .connectionpool import (
    File "C:\Python34\lib\site-packages\urllib3\connectionpool.py", line 28, in <module> 
    from .packages.six.moves.queue import LifoQueue, Empty, Full 
    File "C:\Python34\lib\site-packages\urllib3\packages\six.py", line 203, in load_module 
    mod = mod._resolve() 
    File "C:\Python34\lib\site-packages\urllib3\packages\six.py", line 115, in _resolve 
    return _import_module(self.mod) 
    File "C:\Python34\lib\site-packages\urllib3\packages\six.py", line 82, in _import_module 
    __import__(name) 
ImportError: No module named 'queue' 

「six」というパッケージをインストールしてみても、役に立たないです。 私のsetup.pyはcx_Freezeインポート設定、実行可能 輸入requests.certs

setup(
name = "utils" , 
version = "0.1" , 
description = " utils for accounts" , 
executables = [Executable("utils.py")], 
options = {"build_exe": {"packages": ["urllib", "requests"],"include_files":[(requests.certs.where(),'cacert.pem')]}}, 

)から あるモジュール

import requests 
import urllib.request 
import uuid 
import json 
import http.client 
from xml.dom import minidom 

すべてのヘルプを次

スクリプトの輸入は非常に理解されるであろう。 Pythonの初心者に私を見てください

+0

私はまったく同じ問題を抱えています。あなたはそれを把握しましたか? setup.pyの – Mac

答えて

8

私はPython 3.5でUbuntuで動作するのと同じ問題がありました。 cx_freezeには、他のファイルなどをインポートするライブラリに問題があるようです。 requestsと一緒Queueをインポート

ので、私の仕事:

import requests 
from multiprocessing import Queue 

そして私は"packages": ["urllib", "requests"]urllibを指定する必要があるとは思いません。

+0

、options = {"build_exe":{"パッケージ": "マルチプロセッシング"}}}また、トリックを実行できます(私はcx_Freeze 6.0b1を実行しています) – Toilal

3

は、プロジェクトのパッケージに基づいていくつかのオプションがあります:

方法1:

Answer: I solve the problem my issue was I had file named queue.py in the same directory

方法2:

from multiprocessing import Queue 

法3: 更新ピップから キューはとてもマルチプロセッシングモジュールであります1.5.6~8.1.2

`sudo python -m pip install -U pip` 

システムを再起動(必要な場合はわからないが、後にのみPIPの新しいバージョンを再起動が表示されていた) 法4:

six.moves.queueインポートキューから//私はuが6をインポートする方法がわかりません

pip install cx-freeze==4.3.3 

from multiprocessing import Queue 

に加えて

+1

からマルチプロセッシングインポートキューが解決しました! – laur

1

をパッケージ私はcx_freezeの古いバージョンにロールバック

さらに、 "urllib3"モジュールがないと "requests"ライブラリが不満を表明しました。私はこれをのリクエスト== 2.13.0にアップグレードしました。

私はWin10でPython 3.4を使用しています。これが役立つことを願っています。

+0

私は "pip install cx-freeze == 4.3.3"を試しましたが、今ではcx_freezeを使用することもできません: "cx_freezeという名前のモジュールはありません"お願いします。 どうすれば最新のバージョンに戻すことができますか? –

+0

pip install cx-freeze --upgrade – RdB

2

setup.pyでは、options={"build_exe": {"packages": ["multiprocessing"]}}もこのトリックを行うことができます。

+0

少なくともcx_Freeze 6.0b1を使用する – Toilal

関連する問題