【问题标题】:Error in py2app applicationpy2app 应用程序中的错误
【发布时间】:2013-09-01 00:02:28
【问题描述】:

(OSX = Mountain lion) 我在 /dist 中的应用程序抛出错误:

Last login: Wed Aug 28 11:21:29 on ttys001
-MacBook-Pro:~ $ /Users/Desktop/dist/abc.app/Contents/MacOS/abc ; exit;
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/py2app/apptemplate/lib/site.py", line 20, in   <module>
import os
 File "os.pyc", line 398, in <module>
 File "UserDict.pyc", line 83, in <module>
 File "_abcoll.pyc", line 11, in <module>
 File "/Users/Virendra/Desktop/dist/abc.app/Contents/Resources/abc.py", line 6, in <module>
import psutil 
 File "build/bdist.macosx-10.8-x86_64/egg/psutil/__init__.py", line 54, in <module>
 File "build/bdist.macosx-10.8-x86_64/egg/psutil/_common.py", line 16, in <module>
 File "build/bdist.macosx-10.8-x86_64/egg/psutil/_compat.py", line 65, in <module>
 File "collections.pyc", line 6, in <module>
 AttributeError: 'module' object has no attribute '__all__'
 logout

我的 setup.py(即使没有 - 'import os' 也会出现同样的错误)看起来像:

"""
This is a setup.py script generated by py2applet

Usage:
python setup.py py2app

"""

from setuptools import setup

APP = ['abc.py']
DATA_FILES = []
OPTIONS = {'argv_emulation': True, 'includes': ['psutil', 'time', 'socket', 'os']}

setup(
   app=APP,
   data_files=DATA_FILES,
   options={'py2app': OPTIONS},
   setup_requires=['py2app'],
)

还有相关的脚本 abc.py:

    from psutil import cpu_times_percent 
    import socket
    import time


    serverHost = "localhost"
    thisClient = socket.gethostname()
    cpuStats = psutil.cpu_times_percent()
    print cpuStats
    currentTime = int(time.time())
    s = socket.socket()
    s.connect((serverHost,8080))
    command = 'put cpu.usr ' + str(currentTime) + " " + str(cpuStats[0]) + " host="+ thisClient+ "\n" 
    s.sendall(command)
    command = 'put cpu.nice ' + str(currentTime) + " " + str(cpuStats[1]) +" host="+ thisClient+ "\n"
    s.sendall(command)
    command = 'put cpu.sys ' + str(currentTime) + " " + str(cpuStats[2]) + " host="+ thisClient+ "\n"
    s.sendall(command)
    command = 'put cpu.idle ' + str(currentTime) + " " + str(cpuStats[3]) + " host="+     thisClient+ "\n"
    s.sendall(command)
    s.close()

最初是“import psutil”,我将其更改为“from psutil...”,如上所述。在此处包括“导入操作系统...”。但是所有组合都会引发相同的错误。在其他地方,我将“import psutil”视为标准导入,这也不例外。错误AttributeError: 'module' object has no attribute '__all__' 还意味着什么?谢谢。

【问题讨论】:

    标签: macos import py2app attributeerror


    【解决方案1】:

    您的脚本文件abc.pyPython standard library Abstract Base Class moduleabc 冲突。最简单的解决方案应该是将文件名更改为其他名称。

    【讨论】:

    • 谢谢。有效!但是我收到了一个新的(尽管与原始问题无关)错误,如下所示:[它在顶部列出了 cpupercent,但继续详细说明错误 - 我没有关注这里的输出 - 非常感谢任何帮助/解释] $ ./dist/test1.app/Contents/MacOS/test1 cpupercent(user=2.4, nice=0.0, system=4.8, idle=92.9) Traceback(最近一次调用最后):[仅包括最后一部分]第 16 行,在 s.connect((serverHost,4242)) 文件“socket.pyc”,第 224 行,在 meth socket.error: [Errno 61] Connection denied 2013-08-28 12:50:25.104 test1[4519: 707]测试1错误
    • 请不要在 cmets 中提出新的、不相关的问题。他们很可能会被忽视,任何讨论都不会包括他人或使他人受益。你应该打开一个新问题。也就是说,“连接被拒绝”似乎很清楚。您需要确保可以在端口 4242 的 serverHost 中包含的网络地址处建立与服务器应用程序的连接。但是,如果您仍然遇到问题,请再次提出新问题。跨度>
    • 好的。谢谢。让我检查一个不同的端口,并按照建议进行更新。
    猜你喜欢
    • 2018-10-09
    • 2019-05-10
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    相关资源
    最近更新 更多