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,058 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,892 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 !

...