J'essayais de télécharger/mettre à jour les paquets nltk
de python sur un serveur informatique et cette erreur [Errno 122] Disk quota exceeded:
a été renvoyée.
Plus précisément:
[nltk_data] Downloading package stop words to /home/sh2264/nltk_data...
[nltk_data] Error downloading u'stopwords' from
[nltk_data] <https://raw.githubusercontent.com/nltk/nltk_data/gh-
[nltk_data] pages/packages/corpora/stopwords.Zip>: [Errno 122]
[nltk_data] Disk quota exceeded:
[nltk_data] u'/home/sh2264/nltk_data/corpora/stopwords.Zip
False
Comment puis-je modifier le chemin d'accès complet des packages nltk
et quels autres changements dois-je effectuer pour garantir un chargement sans erreur de nltk
?
Cela peut être configuré à la fois en ligne de commande (nltk.download(..., download_dir=)
ou par interface graphique. Bizarrely nltk semble ignorer totalement sa propre variable d’environnement NLTK_DATA
et ses répertoires de téléchargement par défaut selon un ensemble standard de cinq chemins, que NLTK_DATA
soit défini et où il pointe, et Peu importe que les cinq répertoires par défaut de nltk existent sur la machine ou sur l'architecture (!). Une partie de cela est documentée dans Installation de NLTK Data , bien qu'il soit incomplet et un peu enterré; reproduit ci-dessous avec un formatage beaucoup plus clair:
Installation en ligne de commande
Le téléchargeur recherchera un répertoire
nltk_data
existant dans installer les données NLTK. S'il n'en existe pas, il tentera d'en créer un dans un emplacement central (lors de l'utilisation d'un compte administrateur) ou sinon dans l’espace fichiers de l’utilisateur. Si nécessaire, lancez le téléchargement commande depuis un compte administrateur, ou en utilisant Sudo. Le recommandé l'emplacement du système est:
C:\nltk_data
(Windows);/usr/local/share/nltk_data
(Mac) et/usr/share/nltk_data
(Unix).Vous pouvez utiliser l'indicateur -d pour spécifier un emplacement différent (mais si vous procédez ainsi, veillez à définir la variable d'environnement NLTK_DATA en conséquence).
Exécutez la commande
python -m nltk.downloader all
Pour assurer une installation centralisée, exécutez la commande suivante:
Sudo python -m nltk.downloader -d /usr/local/share/nltk_data all
Mais en réalité, ils devraient dire:
Sudo python -m nltk.downloader -d $NLTK_DATA all
Maintenant, en ce qui concerne quel chemin recommandé par NLTK_DATA devrait utiliser, nltk ne donne pas vraiment de conseils, mais il devrait s'agir d'un chemin autonome générique qui ne se trouve pas dans aucune arborescence d'installation (donc pas dans <python-install-directory>/lib/site-packages
) ni dans aucun répertoire utilisateur. Par conséquent, /usr/local/share
, /opt/share
ou similaire. Sur MacOS 10.7+, /usr
et donc /usr/local/
, ces jours sont masqués par défaut, donc /opt/share
pourrait bien être un meilleur choix. Ou faire chflags nohidden /usr/local/share
.
Selon la documentation :
Par défaut, les packages sont installés dans un répertoire du système (si Python dispose d'un accès suffisant pour y écrire). ou dans le répertoire de base de l'utilisateur actuel. Cependant, l'argument download_dir peut être utilisé pour spécifier une cible d'installation différente, si vous le souhaitez.
Pour spécifier le répertoire de téléchargement, utilisez par exemple:
nltk.download('treebank', download_dir='/mnt/data/treebank')
L’interface graphique NLTK peut également être lancée à partir de la console Python de PyCharm Community Edition. Il suffit d’émettre 2 commandes:
1) importer nltk
2) nltk.download_gui ()
mais l'interface graphique nltk ne fonctionnera pas si vous êtes derrière un serveur proxy pour cela sur la console, vous devez d'abord définir les paramètres du proxy
SET HTTP_PROXY = proxy.mycompany.com: 8080
et puis ça va marcher.