GP8*_*P89 15 python cx-freeze python-2.7
我遇到了cx_Freeze运行冻结应用程序的问题(工作正常解冻).
运行程序时,会产生以下回溯:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/cx_Freeze/initscripts/Console.py", line 27, in <module>
exec code in m.__dict__
File "PythonApp/mainframe.py", line 3, in <module>
File "/usr/local/lib/python2.7/site-packages/dbus/__init__.py", line 103, in <module>
from dbus._dbus import Bus, SystemBus, SessionBus, StarterBus
File "/usr/local/lib/python2.7/site-packages/dbus/_dbus.py", line 39, in <module>
from dbus.bus import BusConnection
File "/usr/local/lib/python2.7/site-packages/dbus/bus.py", line 39, in <module>
from dbus.connection import Connection
File "/usr/local/lib/python2.7/site-packages/dbus/connection.py", line 27, in <module>
import threading
File "/usr/local/lib/python2.7/threading.py", line 44, in <module>
module='threading', message='sys.exc_clear')
File "/usr/local/lib/python2.7/warnings.py", line 57, in filterwarnings
import re
File "/usr/local/lib/python2.7/re.py", line 105, in <module>
import sre_compile
File "/usr/local/lib/python2.7/sre_compile.py", line 14, in <module>
import sre_parse
File "/usr/local/lib/python2.7/sre_parse.py", line 17, in <module>
from sre_constants import *
File "/usr/local/lib/python2.7/sre_constants.py", line 18, in <module>
from _sre import MAXREPEAT
ImportError: cannot import name MAXREPEAT
Run Code Online (Sandbox Code Playgroud)
我在linux上使用我从源代码构建的python 2.7.4版本,_sre从提示符导入工作,我可以访问MAXREPEAT常量.
这通常取决于cx_Freeze不将所有内容都拉入,library.zip并且可以通过在cx_Freezes setup include列表中明确命名模块来修复,并且是这个类似问题的解决方案,但这在这里没有帮助.
这个_sre模块看起来很奇怪.. 生成中没有_sre文件,library.zip但从错误中看起来它似乎可以找到它,但它无法导入该符号?当然,如果模块不在那里,那将是一个" No module named _sre"错误.或者可能是循环导入,但_sre存根没有任何导入.
奇怪的是我似乎无法找到该文件 - 这个模块是在导入时动态创建的吗?
find /usr/local/lib/python2.7 -name "_sre*"
Run Code Online (Sandbox Code Playgroud)
不会返回任何内容,导入的_sre模块也没有__file__属性,所以我不知道如何确保它包含在内,因为它显示为内置.
>>> import _sre
>>> _sre.__file__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute '__file__'
>>> repr(_sre)
"<module '_sre' (built-in)>"
Run Code Online (Sandbox Code Playgroud)
这与最近被问到的这个问题类似,但是在这种情况下,他在常规翻译中得到了错误,但对我而言,它只是在cx_Freeze.
跑步python -v确实看起来像是内置的,所以我不确定为什么cx_Freeze会错过它,或者我如何解决它.
...
# /usr/local/lib/python2.7/re.pyc matches /usr/local/lib/python2.7/re.py
import re # precompiled from /usr/local/lib/python2.7/re.pyc
# /usr/local/lib/python2.7/sre_compile.pyc matches /usr/local/lib/python2.7/sre_compile.py
import sre_compile # precompiled from /usr/local/lib/python2.7/sre_compile.pyc
import _sre # builtin
# /usr/local/lib/python2.7/sre_parse.pyc matches /usr/local/lib/python2.7/sre_parse.py
import sre_parse # precompiled from /usr/local/lib/python2.7/sre_parse.pyc
...
Run Code Online (Sandbox Code Playgroud)
Joh*_*hao 33
我遇到了这个问题,当我刚刚从Ubuntu的升级到12.10 13.04,和我通过复制在/ usr/bin中/ Python的/路径/要/我的/ ENV /斌/固定这一点,它的工作就好了
cp /user/bin/python /path/to/my/env/bin/
或者,有一个更优雅的方法来解决这个问题(参考):
mkvirtualenv <existing virtualenv name>
Tho*_*s K 14
_sre是一个内置模块,因此没有要包含的文件,但它在Python 2.7.3中没有MAXREPEAT属性:
>>> import _sre
>>> _sre
<module '_sre' (built-in)>
>>> _sre.MAXREPEAT
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'MAXREPEAT'
Run Code Online (Sandbox Code Playgroud)
我最好的猜测是你的冷冻副本在某种程度上具有Python 2.7.4中的标准库.py模块,但是来自2.7.3或更早版本的已编译Python解释器.我看到你正在努力/usr/local- 也许它正在从中获取旧版本/usr.
| 归档时间: |
|
| 查看次数: |
25934 次 |
| 最近记录: |