AttributeError: 'list' 对象在使用 cx_freeze 时没有属性 'rfind'

Posted

技术标签:

【中文标题】AttributeError: \'list\' 对象在使用 cx_freeze 时没有属性 \'rfind\'【英文标题】:AttributeError: 'list' object has no attribute 'rfind' in using cx_freezeAttributeError: 'list' 对象在使用 cx_freeze 时没有属性 'rfind' 【发布时间】:2015-12-21 09:40:35 【问题描述】:

我在我的 linux 机器上有一个采用这种结构的项目:

project/
       changelog
       README
       src/
          install.sh
          myproject.py
          modules/
                 a.py 
                 b.py
                 __init__.py

现在我想使用cx_freeze 来构建我的项目:

import sys
from cx_Freeze import setup,Executable

includefiles = ['changelog', 'README', 'src/install.sh']
executable = ['src/myproject.py', 'src/modules/a.py',  'src/modules/b.py', 'src/modules/__init__.py']
includes = []
excludes = []
packages = []

setup(
    name = 'myproject',
    version = '0.1',
    description = 'A general enhancement utility',
    author = 'user',
    author_email = 'mail@gmail.com',
    options = 'build_exe': 'excludes':excludes,'packages':packages,'include_files':includefiles,
    executables = [Executable(executable)]

我愿意:

$ python setup.py build

但是出现如下错误:

AttributeError: 'list' object has no attribute 'rfind'

【问题讨论】:

【参考方案1】:

您将数组分配给executable 变量

executable = ['src/myproject.py', 'src/modules/a.py',  'src/modules/b.py', 'src/modules/__init__.py']

但它应该是一个字符串。请参考manual。手册中的一个例子:

setup(  name = "guifoo",
        version = "0.1",
        description = "My GUI application!",
        options = "build_exe": build_exe_options,
        executables = [Executable("guifoo.py", base=base)])

【讨论】:

您分配['src/myproject.py', 'src/modules/a.py', 'src/modules/b.py', 'src/modules/__init__.py'](即数组)而不是"guifoo.py"(即字符串)。并且数组没有定义rfind 方法。我不知道如何说得更清楚。如果您不明白我的意思,也许可以尝试重新提出您的问题。 那我该如何改变呢? 我认为应该是executable="src/myproject.py" (***.com/questions/9895636/how-do-i-use-cx-freeze) 好的..但是其他模块没有被复制...比如src/modules/a.py ETC 对不起,我不知道。这个***.com/questions/25938252/… 看起来和你的问题很相似。

以上是关于AttributeError: 'list' 对象在使用 cx_freeze 时没有属性 'rfind'的主要内容,如果未能解决你的问题,请参考以下文章

AttributeError:“list”对象没有属性“startswith”

面对 AttributeError:'list' 对象没有属性 'lower'

如何解决 AttributeError:'list' 对象在 python 中没有属性'keys' [关闭]

ansible AttributeError: 'list' 对象没有属性 'startswith'

Sklearn 错误:“AttributeError:‘MissingValues’对象没有属性‘to_list’”

AttributeError: 'list' 对象在使用 cx_freeze 时没有属性 'rfind'