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'