Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

distutils : AttributeError: 'list' object has no attribute 'split'

+2 votes

Ce build me retourne l'erreur AttributeError: 'list' object has no attribute 'split' :

writing facteur.egg-info/PKG-INFO

Traceback (most recent call last):

File "setup.py", line 73, in <module>

tests_require=test_requirements

File "/opt/python/3.4.2/lib/python3.4/distutils/core.py", line 148, in setup

dist.run_commands()

File "/opt/python/3.4.2/lib/python3.4/distutils/dist.py", line 955, in run_commands

self.run_command(cmd)

File "/opt/python/3.4.2/lib/python3.4/distutils/dist.py", line 974, in run_command

cmd_obj.run()

File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/command/install.py", line 67, in run

self.do_egg_install()

File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/command/install.py", line 109, in do_egg_install

self.run_command('bdist_egg')

File "/opt/python/3.4.2/lib/python3.4/distutils/cmd.py", line 313, in run_command

self.distribution.run_command(command)

File "/opt/python/3.4.2/lib/python3.4/distutils/dist.py", line 974, in run_command

cmd_obj.run()

File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/command/bdist_egg.py", line 152, in run

self.run_command("egg_info")

File "/opt/python/3.4.2/lib/python3.4/distutils/cmd.py", line 313, in run_command

self.distribution.run_command(command)

File "/opt/python/3.4.2/lib/python3.4/distutils/dist.py", line 974, in run_command

cmd_obj.run()

File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/command/egg_info.py", line 172, in run

writer(self, ep.name, os.path.join(self.egg_info, ep.name))

File "/home/travis/virtualenv/python3.4.2/lib/python3.4/site-packages/setuptools/command/egg_info.py", line 387, in write_pkg_info

metadata.write_pkg_info(cmd.egg_info)

File "/opt/python/3.4.2/lib/python3.4/distutils/dist.py", line 1108, in write_pkg_info

self.write_pkg_file(pkg_info)

File "/opt/python/3.4.2/lib/python3.4/distutils/dist.py", line 1129, in write_pkg_file

long_desc = rfc822_escape(self.get_long_description())

File "/opt/python/3.4.2/lib/python3.4/distutils/util.py", line 470, in rfc822_escape

lines = header.split('\n')

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

Il n'y a pas ce problème avec Python 2.7.

demandé 6-Fev-2015 par Vayel (1,050 points)
reclassée 6-Fev-2015 par foxmask

on peut voir la tete du setup.py ?

j'ai remis mes yeux en face de leur trou et j'ai trouvé le fichier

1 Réponse

+2 votes
 
Meilleure réponse

le problème dans le setup.py est sur la ligne

long_description=readme,

readme est rempli via

with open("README.md", "r") as f:
    readme = f.readlines()

mais un print(readme) nous crache :

['# Facteur \n']

et là patatra

File "/opt/python/3.4.2/lib/python3.4/distutils/dist.py", line 1129, in write_pkg_file
long_desc = rfc822_escape(self.get_long_description())
File "/opt/python/3.4.2/lib/python3.4/distutils/util.py", line 470, in rfc822_escape
lines = header.split('\n')
AttributeError: 'list' object has no attribute 'split'
répondu 6-Fev-2015 par foxmask (2,888 points)
sélectionné 7-Fev-2015 par Vayel

Parfait !

Par contre, comment as-tu su que le problème provenait de long_description=readme, sachant que l'erreur faisait référence à tests_require=test_requirements ? Tu as simplement regardé là où je pouvais avoir une liste au lieu d'une chaîne ?

Bon je fais comme je fais toujours , je commente la ligne en erreur et comme l'erreur remonte je commenté la ligne concernée jusqu'à ne plus rencontrer le pb. Après j'analyse . et hop

D'accord. Merci !

...