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.

erreur d'import ou d'initialisation de module [fermés]

0 votes

Windows 7 , Python 2.7.8, 32 bits
J'ai installé 2 libs à la mano (pas le choix) par copie des sources sur Lib/site-packages : NLTK et six
j'ai étoffé avec les initpy au bon endroit .

si j'ouvre IDLE depuis C:\python27\python.exe :

>>> import six
>>> six.text_type
Traceback (most recent call last):
    File "<pyshell#6>", line 1, in <module>
          six.text_type    
AttributeError: 'module' object has no attribute 'text_type'

Si maintenant j'ouvre six.py depuis C:\Python27\Lib\site-packages\six
avec l'IDLE avant de l'executer via F5, tout marche nickel :

>>> import six
>>> six.text_type
       <type 'unicode'>

Pourquoi j'isole ce problème ? parce que c'est le seul contournement pour pouvoir importer
cette librairie six tierce appelée par la NLTK et qui génère l'erreur d'import :

        >>> import nltk
 Traceback (most recent call last):

  File "<pyshell#8>", line 1, in <module>
import nltk
  File "C:\Python27\lib\site-packages\nltk\__init__.py", line 128, in <module>
from nltk.chunk import *
File "C:\Python27\lib\site-packages\nltk\chunk\__init__.py", line 157, in <module>
    from nltk.chunk.api import ChunkParserI
  File "C:\Python27\lib\site-packages\nltk\chunk\api.py", line 13, in <module>
    from nltk.parse import ParserI
  File "C:\Python27\lib\site-packages\nltk\parse\__init__.py", line 77, in <module>
    from nltk.parse.malt import MaltParser
  File "C:\Python27\lib\site-packages\nltk\parse\malt.py", line 14, in <module>
    from six import text_type
ImportError: cannot import name text_type
>>>

j'ai tenté plein de trucs à base d'execfile préliminaires ou autre sys.path.append() mais rien y fait...

fermée avec la mention: résolu
demandé 10-Mai par dom
fermés 12-Mai

3 Réponses

0 votes
 
Meilleure réponse

La meilleure solution reste d'utiliser les options adéquates prévues par pip et de le laisser gérer l'install plutôt que de bricoler à la mano :

dans mon cas, sous cmd.exe de Windows :

pip install --proxy="[user:passwd@]proxy.server:port  nltk 

tout se fait tout seul ...
bien sûr il a fallu que j'achète l'info du bon proxy à mon cher administrateur réseau ;-)

répondu 12-Mai par anonyme
0 votes

J'ai installé 2 libs à la mano (pas le choix) par copie des sources sur Lib/site-packages...

Ton problème, c'est ton installation à la main.
Tu dis que tu n'as pas eu le choix, il faut que tu expliques pourquoi et on pourra t'aider.

En général, pip est l'outil d'installation à utiliser. Il marche aussi en local (sans réseau) si tu disposes des sources.

Sinon, tu peux aussi considérer la distribution anaconda pour l'installation de python. Elle vient avec l'outil conda qui facilitera sûrement l'installation de lib compliquée comme NLTK.

répondu 10-Mai par bubulle (2,056 points)

merci bubulle, la piste pip en install locale je ne connaissais pas, je vais me documenter

+1 vote

Suite à la réponse de bubulle ci dessous, j'ai repris le problème à l'endroit en utilisant des options jusque là inconnues de pip.
Ce qui a fonctionné dans mon cas c'est :
sous Windows
en cmd line :

set https_proxy=https://your_proxy:your_port

avant d'envoyer :

pip install nltk
répondu 10-Mai par anonyme
...